技巧
用这篇文章来专门收集一些ActionScript不为人知,抑或是不常见的一些技巧或问题。希望对大家有所帮助!
这篇文章本人亦会不断更新和修正。
1. TextFormat.URL
很多人都知道使用textField.htmlText来写超文本的方式,可是似乎很少人知道其实我们还可以使用TextFormat.URL来定义。
1 : myFormat = new TextFormat();
2 : myFormat.url = "http://www.zhitiao.com";
3 : my_txt.html = true; //这是必须的
4 : my_txt.htmlText = "一张纸条工作室";
5 : my_txt.setTextFormat(myFormat);
2. 使用Javascript方法
通常trace方法的浏览器替代方法可以使用
1 : function debug(info){
2 : getUrl("javascript:alert('" + info + "')");
3 : }
如果使用超文本链接的话,可以直接使用
my_txt.html = true;
my_txt.htmlText = "<a href=javascript:alert('欢迎光临一张纸条工作室!')>一张纸条工作室</a>";
3. 复制数组
如果使用下面的复制数组的方法只是一个指向,并没有形成真正的拷贝。
[ Copy ] [ Run ] [ Save ]
1 : b_array = a_array;
2 : //当a_array数组内容改变的时候,b_array的内容也随之改变了
3 : //解决方法可以使用下面的方式
4 : b_array = a_array.slice();
4. 卸载拖入舞台的MC
我们知道只有动态创建的mc才可以使用removeMovieClip()方法来卸载,帮助中对removeMovieClip方法的说明如下:
Quote
删除用 duplicateMovieClip()、MovieClip.duplicateMovieClip() 或
MovieClip.attachMovie() 创建的影片剪辑实例。
下面的技巧可以让我们随心所欲的卸载你需要的MC,即使是你拖入舞台的组件等。
1 : My_mc.swapDepths(100);//把mc的深度值设定为大于0的值
2 : My_mc.removeMovieClip();//这样就可以正常卸载mc了
是不是很有用哦。
PS:使用my_mc.unloadMovie() 以可以删除mc实例,但是却保留了实例属性和剪辑处理函数。用removeMovieClip() 可以删除实例(包括其属性和剪辑处理函数)。
5. 魔法深度值–16384
我们知道Flash中的元素使用深度的概念,所有创作中的元素都从 -16383 开始,所以如果我们要让某个元素显示在最底层的话,可以把深度设定为魔法深度值。
其中原因我们不妨深究下:
原来Macromedia's mx.managers.DepthManager 类中定义了下面的值:
[ Copy ] [ Run ] [ Save ]
1 : // highest allowed depth is reserved for tooltips and cursors
2 : static var reservedDepth:Number = 1048575;
3 : // highest depth for all other objects
4 : static var highestDepth:Number = 1048574;
5 : // lowest allowed depth
6 : static var lowestDepth:Number = -16383;
7 : // lowest depth plus this number of layers is reserved
8 : // for statically placed content
9 : static var numberOfAuthortimeLayers:Number = 383;