AS3及Flex的百条常用知识

2019-10-08 13:35:42王振洲

复制代码var myArr:Array = new Array("one", "two", "three"); var myStr:String = myArr.join(" and "); trace(myArr); //输出: one,two,three trace(myStr); //输出: one and two and three【使用对象数组处理相关数据】
复制代码var cars:Array = new Array(); cars.push({make:"Mike", year:1997, color:"blue"}); cars.push({make:"Kelly", year:1986, color:"red"}); for(var i:int = 0; i < cars.length; i++) { trace(cars[i].make + " - " + cars[i].year + " - " + cars[i].color); } //输出: // Mike - 1997 - blue // Kelly - 1986 - red【在数组中获取最小或最大值】
复制代码var scores:Array = [10, 4, 15, 8]; scores.sort(Array.NUMERIC); trace("Minimum: " + scores[0]); trace("Maximum: " + scores[scores.length - 1]);【使用for ... in语句读取关联数组元素】
复制代码var myObject:Object = new Object(); myObject.name = "YoungBoy"; myObject.age = 20; for(var i:String in myObject) { trace(i + ": " + myObject[i]); }//输出: name: YoungBoy // age: 20 注意: for ... in循环不会显示对象所有的内建属性.例如,循环会显示执行期间新增的特殊属性,但是,不会列出内建对象的方法,即使都是储存在对象属性内. 【AVM(ActionScript Virtual Machine,虚拟机)和渲染引擎(Rendering Engine)】 AVM负责执行ActionScript程序,而渲染引擎则是把对象绘制在显示器上. 【指出容器的显示清单中有多少显示对象】 每个容器都有numChildren属性. 【把项目新增至显示清单】
复制代码addChild(child:DisplayObject) addChildAt(child:DisplayObject, index:int)index: 添加该子项的索引位置.如果指定当前占用的索引位置,则该位置以及所有更高位置上的子对象会在子级列表中上移一个位置. 【从显示清单中移除项目】
复制代码removeChild(child:DisplayObject) removeChildAt(index:int)index: 要删除的 DisplayObject 的子索引,该子项之上的任何显示对象的索引位置都减去1. 如果想移除窗口所有子元件,可以结合removeChildAt(),numChildren属性以及for循环.因为每次一个子元件被移除时,索引位置都会变化,所以,有两种方法可以处理所有子元件的移除: 1. 总是移除位置0的子元件; 2. 倒过来移除子元件,也就是从尾端开始. 【更改现有子项在显示对象容器中的位置】 setChildIndex(child:DisplayObject, index:int):void 可能用到的方法: 返回 DisplayObject 的 child 实例的索引位置: getChildIndex(child:DisplayObject):int 返回位于指定索引处的子显示对象实例: getChildAt(index:int):DisplayObject 注意: 当子元件移到低于它现在所在位置的索引时,那么,从标的索引起,直到子元件索引前面的那个索引的所有子元件都会令其索引增加1,而该子元件就会指定至标的索引.当子元件移到较高索引时,从该子元件索引之上的那个索引起,直到标的索引的所有子元件都会令其索引往下减1,而该子元件就会指定至标的索引值. 【关于TextField以垂直方式把文字摆在按钮表面中心点的小技巧】