我现在正在研究一些功能,它可以创建几乎任何我想象的图形或特殊效果(授予我一个或两个基本movieClip)并且我遇到了一个问题。我需要能够根据传递给GraphicEffect函数行为对象的参数向函数movieClip添加函数。是否有一种有效的方法可以将新函数(如旋转,增长,收缩等)添加到已存在的onEnterFrame函数中而不将if语句放在其中?
答案 0 :(得分: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();};
答案 1 :(得分: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);