影片剪辑动画结束时,谁能建议最好的方法来触发功能?
我认为事件监听器可以处理此问题,但不确定执行此操作的最佳方法。
谢谢
保罗
最佳答案
有几种方法可以解决此问题:
关于第3点,我将为您的对象创建一个基类。这样,您可以将相同的逻辑应用于多个动画元素。
像这样的东西:
package
{
import flash.display.MovieClip;
import flash.events.Event;
public class AnimatingObject extends MovieClip
{
// constants
public const ANIMATION_COMPLETE:String = "animation_complete";
/**
* Constructor
*/
public function AnimatingObject()
{
addEventListener(Event.ENTER_FRAME, _handle);
}
/**
* Called on dispatch of Event.ENTER_FRAME
*/
private function _handle(e:Event):void
{
if(currentFrame == totalFrames)
{
var evt:Event = new Event(ANIMATION_COMPLETE);
dispatchEvent(evt);
}
}
}
}
现在我们可以听“animation_complete” 并做相应的事情。
package
{
import flash.events.Event;
public class MyAnimatingObject extends AnimatingObject
{
/**
* Constructor
*/
public function MyAnimatingObject()
{
addEventListener(ANIMATION_COMPLETE, _lastFrame);
}
/**
* Called on dispatch of AnimatingObject.ANIMATION_COMPLETE
*/
private function _lastFrame(e:Event):void
{
trace("i'm done");
}
}
}
关于影片剪辑结束的Flash事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981069/