1

我现在正在开发一个功能,可以创建几乎任何我能想象到的图形或特殊效果(假设我有一两个基本的movieClip),但我遇到了一个问题。我需要能够根据传递给 GraphicEffect 函数行为对象的参数向效果movieClip 添加函数。有没有一种有效的方法可以在现有的 onEnterFrame 函数中添加新的函数,如旋转、增长、收缩等,而不需要在其中放置 if 语句?

4

2 回答 2

2

是的,有办法。

我不确定你是如何设置你的行为对象的,但假设它类似于 {A:spin,B:grow,C:fade} 你可以为你的效果动画剪辑实现一个附加功能(我只是调用它'fx')通过使用以下代码样式:

   fx.TempA=fx.onEnterFrame;
   function NewA(){fx.TempA();behaviors.A(fx);};
   fx.onEnterFrame=function(){NewA();};   
   fx.TempB=fx.onEnterFrame;
   function NewB(){fx.TempB();behaviors.B(fx);};
   fx.onEnterFrame=function(){NewB();};   
   fx.TempC=fx.onEnterFrame;
   function NewC(){fx.TempC();behaviors.C(fx);};
   fx.onEnterFrame=function(){NewC();};
于 2012-08-24T10:18:41.403 回答
0

不一样的方式

mcFX.enterFrameFunctions = [];

mcFX.onEnterFrame = function(){
    for(var i in this.enterFrameFunctions) this.enterFrameFunctions[i]();
}

function a():Void {
    trace("a called");
}

function b():Void {
    trace("b called");
}

function c():Void {
    trace("c called");
}

mcFX.enterFrameFunctions.push(a, b);
于 2012-08-24T13:52:46.950 回答