关联数组与普通数组最大的不同就是关联数组是采用字符串来作为索引下标
以Array类创建为例
普通数组格式:
var huspace:Array = new Array();
huspace[0]="Flash"
huspace[1]="Dreamweaver"
huspace[2]="Fireworks"
关联数组格式:
var huspace:Array = new Array();
huspace["Flash"]="Flash"
huspace["Dreamweaver"]="Dreamweaver"
huspace["Fireworks"]="Fireworks"
但是flash不推荐使用Array类用于创建关联数组,关联数组是不同的数据结构,它们包含命名元素而不是编号元素。应该使用
Object 类创建关联数组(也称为 哈希)。
以Object类创建
//
//声明创建一个Object对象
var
huspace:Object = new Object();
//
//把这个关联数组赋值给一个全局变量,方便在任何地方调用
_global.huspace = huspace;
//
//赋值
_global.huspace.Flash =
"Flash";
_global.huspace.Dreamweaver = "Dreamweaver";
_global.huspace.Fireworks= "Fireworks";
//
注意事项:Object创建的关联数组中,属性名中不能包含有下划线"_"和数字
如:
_global.xml_config.Web_Site = "huspace.cn";
_global.xml_config.WebSite2 =
"huspace.cn";
是错误的
使用removeMovieClip() 卸载时,如果创建MC的时候层深是用getNextHighestDepth()
方法取得,那么flash中不能使用自带的第 2 版UI组件,否则removeMovieClip()将失效.
解决办法:
1.使用unloadMovie() 来卸载影片.但是有缺陷,例如需要不断的载入和卸载影片,这个时候会出问题
2.创建影片的时候不使用getNextHighestDepth()取得层深,使用swapDepths()来设置有效的深度值(最高1048575
和最低-16383 可用深度)(必须要设置为正深度值)
3.使用DepthManager 类分配深度值.
flash帮助中的内容:
removeMovieClip(MovieClip.removeMovieClip 方法)
public removeMovieClip() : Void
删除用
duplicateMovieClip()、MovieClip.duplicateMovieClip()、MovieClip.createEmptyMovieClip()
或 MovieClip.attachMovie() 创建的影片剪辑实例。
此方法不删除分配给负深度值的影片剪辑。默认情况下会给在创作工具中创建的影片剪辑分配负深度值。若要删除分配给负深度值的影片剪辑,请首先使用
MovieClip.swapDepths() 方法将影片剪辑移动到正深度值。
注意:如果使用第 2
版的组件,则不要使用此方法。如果您在舞台上或库中放置了第 2 版的版组件,getNextHighestDepth() 方法有时会返回深度
1048676,它超出了有效范围。如果使用第 2 版的组件,则应始终使用第 2 版的组件 DepthManager 类。
注意:如果正使用第 2
版的组件,并且使用 MovieClip.getNextHighestDepth() 而不是第 2 版的组件 DepthManager
类分配深度值,则您可能会发现 removeMovieClip() 将失败且无任何提示。在使用任何第 2 版的版组件时,DepthManager
类都将自动保留光标和工具提示的最高 (1048575) 和最低 (-16383) 可用深度。对 getNextHighestDepth() 的后续调用返回
1048576,这超出了有效范围。如果遇到有效范围之外的深度值,则 removeMovieClip() 方法将失败且无任何提示。如果必须对第 2 版的组件使用
getNextHighestDepth(),则可以使用 swapDepths() 分配有效的深度值或使用 MovieClip.unloadMovie()
删除影片剪辑的内容。或者,您也可以使用 DepthManager 类来分配有效范围内的深度值。
您可以通过创建子类来扩展 MovieClip
类的方法和事件处理函数。
可用性:ActionScript 1.0;Flash Player 5