我正在为我正在制作的动画创建一个木偶装备。我已经创建了两个继承自MovieClip类的自定义类。一个是我正对着相机设置动画的头部,另一个是同一头部的3/4视图。我已经修改了这两个构造器,添加了一个调用函数facRig的事件侦听器,它可以帮助我通过调用其他函数(如moveEyes(), moveMouth()等)来设置头部动画。
public function _F__MichaelFULLHEAD() {
super();
faceRig("OverLoad"); //<--bug workaround
this.gotoAndPlay(MovieClip(root).currentFrame); //Sync movieclips with timeline
addEventListener(Event.ENTER_FRAME,faceRig);
}但是,该函数始终在时间线中出现MovieClip后的一帧内调用。这种延迟使得动画变得不可能,因为我必须不断地在前视图和3/4视图之间切换(我通过在时间轴中创建一个新的关键帧并从库中拖动元件来切换)。每次我切换时,都会有一帧画面中嘴巴不说话,眼睛也不动。
"bug解决方案“在某种程度上解决了问题。现在,任何一个头部第一次出现在舞台上时,它立即开始动画,但如果我从前视图切换到3/4视图回到前视图,前视图再次延迟。
我怀疑这可能是因为构造函数没有再次运行,所以我试图通过在对象的属性框中将heads的每个实例命名为frontHead1和frontHead2来使它们唯一,但是这根本没有帮助。
发布于 2013-06-07 09:27:13
我已经找到了我自己问题的答案:
public function _F__MichaelFULLHEAD() {
super();
//this.gotoAndPlay(MovieClip(root).currentFrame); << Moved this to inside faceRig
addEventListener(Event.ENTER_FRAME,faceRig);
addEventListener(Event.ADDED,faceRig);
}显然,Event.ADDED在Event.ENTER_FRAME之前运行,这与我认为我所知道的Event.ENTER_FRAME的工作原理相矛盾。现在一切都像它应该的那样工作。
https://stackoverflow.com/questions/16953789
复制相似问题