无法在AS3中的动画片段上创建过滤器

时间:2015-09-29 14:31:34

标签: actionscript-3 filter mouseover mouseout

经过长时间的闪光挣扎......

我有一些动画片段,我想只对我MOUSE_OVER的动画片段进行过滤。

对于每个动画片段,必须采用与MOUSE_OVER和MOUSE_OUT类型不同的方式。

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题。

<强>最佳:

使用继承。

如果您创建的类文件具有一组项目的所有常用功能,则可以让MovieClip继承该功能。因此,您要在根目录中创建一个如下所示的文件。 (让我们称之为key

FilteredMC.as

然后在FlashPro中,右键单击应具有此功能的库对象,转到&#34; 属性&#34;,然后选择&#34; export for actionscript&#34;然后在&#34; 基类&#34;文本字段,放置: FilteredMC 。把你喜欢的任何东西作为班级名称(只要它是唯一的,不会与任何其他类或关键词发生冲突)

不可

如果所有项目都是容器的唯一子项,则可以循环遍历该容器的所有子项并添加代码:(您也可以使用一系列项目执行此操作)

package {
    import flash.events.MouseEvent;

    public class FilteredMC extends MovieClip {

        //the function that matches the name of class, is what runs when the object is created
        public function FilteredMC():void {
            this.addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
            this.addEventListener(MouseEvent.MOUSE_OUT,mouseOut);
        }

        private function mouseOver(e:MouseEvent):void {
            this.filters = [...your filter...]
        }

        private function mouseOut(e:MouseEvent):void {
            this.filters = [];
        }
    }
}