学习 Flash 中的 ActionScript 2.0 |
|
|
|
| 动画、滤镜和绘画 > 使用代码处理滤镜效果 > 使用 clone() 方法 | |||
每个滤镜类中的 clone() 方法都会返回一个新的滤镜实例,它与原始滤镜实例具有相同的属性。当您使用滤镜时,可能要制作滤镜的副本,为此需要使用 clone() 方法复制滤镜。如果不使用克隆方法来复制滤镜,Flash 将只创建对原始滤镜的引用。如果 Flash 创建对原始滤镜的引用,则对复制的滤镜所做的任何更改也将同时修改原始滤镜对象。
下面的过程创建 DropShadowFilter (greenDropShadow) 的一个新实例,调用 clone() 方法来复制绿色投影滤镜,并将新滤镜保存为 redDropShadow。克隆的滤镜设置一个新的投影颜色,新旧两个滤镜都将应用于舞台上的 flower_mc 影片剪辑实例中。
使用克隆方法: import flash.filters.DropShadowFilter; var greenDropShadow:DropShadowFilter = new DropShadowFilter(); greenDropShadow.color = 0x00FF00; // green var redDropShadow:DropShadowFilter = greenDropShadow.clone(); redDropShadow.color = 0xFF0000; // red flower_mc.filters = [greenDropShadow, redDropShadow];
前面的代码创建投影滤镜的一个新实例,并将其命名为 greenDropShadow。将使用 DropShadowFilter.clone() 方法复制绿色投影对象,并创建一个名为 redDropShadow 的新滤镜对象。绿色和红色的投影滤镜都将应用于舞台上的 flower_mc 影片剪辑实例中。如果没有调用 clone() 方法,则两个投影滤镜都将显示为红色。出现此现象的原因在于,由于红色投影包含对绿色投影的引用,所以设置 redDropShadow.color 属性将同时更改红色投影和绿色投影对象。
该滤镜将被复制并克隆,并且两个滤镜都将应用于 flower_mc 实例。
有关 clone() 方法的更多信息,请参见"ActionScript 2.0 语言参考"中的 clone(DropShadowFilter.clone 方法)。有关信息,还可以参见任何滤镜类的 clone() 方法。
|
|
|
|