当我从它鼠标输出时,我正试图让一个影片剪辑反向播放(它在mouse_over上播放).
我的动作如下:
mc.stop();
mc.addEventListener(MouseEvent.MOUSE_OVER,mover);
mc.addEventListener(MouseEvent.MOUSE_OUT,mout);
function mover(e:MouseEvent):void
{
mc.play();
}
function mout(e:MouseEvent):void
{
//Play in reverse
}
Run Code Online (Sandbox Code Playgroud)
我怎么做到这一点?
谢谢
sbe*_*rry 15
最好的方法是使用ENTER_FRAME事件侦听器.基本上这就是你想要做的
function mover(e:MouseEvent):void {
stopPlayReverse();
mc.play();
}
function mout(e:MouseEvent):void {
this.addEventListener(Event.ENTER_FRAME, playReverse, false, 0, true);
}
function playReverse(e:Event):void {
if (mc.currentFrame == 1) {
stopPlayReverse();
} else {
mc.prevFrame();
}
}
function stopPlayReverse():void {
if (this.hasEventListener(Event.ENTER_FRAME)) {
this.removeEventListener(Event.ENTER_FRAME, playReverse);
}
}
Run Code Online (Sandbox Code Playgroud)
这将反向播放您的MovieClip,直到它到达第1帧,然后它将停止.
如果动作允许,您可以使用补间(例如,如果您想要更改alpha,位置或比例).在MouseOut上,您可以为Tween调用.yoyo(),它将反向播放.
像这样的东西:
var tween:Tween;
mc.addEventListener(MouseEvent.MOUSE_OVER,mover);
mc.addEventListener(MouseEvent.MOUSE_OUT,mout);
function mover(e:MouseEvent):void
{
tween = new Tween(obj, "alpha", None.easeNone, 1, 0, 1, true);
}
function mout(e:MouseEvent):void
{
tween.yoyo();
}
Run Code Online (Sandbox Code Playgroud)