動的にAS3をステージにムービークリップを追加します
-
12-09-2019 - |
質問
ムービークリップは、アニメーションのいくつかのフレームが含まれていますクリックしたことをステージにムービークリップを追加します(手)。 -
私は(run5-BTN run1_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;
}
解決
おそらくよりエレガントな、それはそれがステージに追加されます際に任意の文脈で手がそのタイムラインアニメーションを再起動するようになります(あなたの視点に依存します):
hand.addEventListener(Event.ADDED_TO_STAGE, onHandAddedToStage, false, 0, true);
function onHandAddedToStage(event:Event):void
{
var mc:Movieclip = MovieClip(event.currentTarget);
mc.gotoAndPlay(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);
}
所属していません StackOverflow