我在舞台上有一些按钮(run1_btn - run5-btn),点击时会将一个影片剪辑添加到舞台上。(手)影片剪辑包含几帧动画。单击按钮时,将添加动画片段但动画已完成。 我认为当mc被添加到舞台然后动画将开始,但似乎并非如此。 有没有人知道解决这个问题的方法。
这是我的代码:
var handSlap:hand;
handSlap = new hand();
//event listeners
newPig.run1_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run2_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run3_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run4_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run5_btn.addEventListener(MouseEvent.CLICK, clickArea);
//functions
function clickArea(evtObj:MouseEvent):void
{
trace(evtObj.target.name);
addChild(handSlap);
handSlap.x =200;
handSlap.y=200;
}
答案 0 :(得分:1)
可能更优雅(取决于你的观点),它确保在任何上下文中,当它被添加到舞台时,手将重新启动其时间轴动画:
hand.addEventListener(Event.ADDED_TO_STAGE, onHandAddedToStage, false, 0, true);
function onHandAddedToStage(event:Event):void
{
var mc:Movieclip = MovieClip(event.currentTarget);
mc.gotoAndPlay(1);
}
如果您不熟悉事件模型,那么“false,0,true”位只会确保如果您需要卸载它,它将不会被事件侦听器阻挡并留在内存中,可能你不需要它,但没有任何伤害。
答案 1 :(得分:0)
var newPig:pig;
newPig = new pig();
addChild(newPig);
newPig.y=360;
newPig.x=350;
var handSlap:hand;
handSlap = new hand();
//event listeners
newPig.run1_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run2_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run3_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run4_btn.addEventListener(MouseEvent.CLICK, clickArea);
newPig.run5_btn.addEventListener(MouseEvent.CLICK, clickArea);
handSlap.addEventListener(Event.ADDED_TO_STAGE, onHandAddedToStage, false, 0, true);
//functions
function clickArea(evtObj:MouseEvent):void
{
trace(evtObj.target.name);
addChild(handSlap);
handSlap.x =200;
handSlap.y=200;
}
function onHandAddedToStage(event:Event):void
{
var mc:MovieClip = MovieClip(event.currentTarget);
mc.gotoAndPlay(1);
}