0

私は Flash を初めて使用します..(それほど新しいわけではありません)、質問をしたいと思います。空から落ちてくる人を撃つゲームを作りました。敵を作るつもりだったのですが、射撃などのエフェクトを作ろうと思いました。クリックすると、新しい子が作成され、爆発のムービー クリップ アニメーションになるエフェクトを作成しました。しかし、私はアニメーションを止めることができません。ループし続けます。stop(); を試しました。シンボルの最後のフレームにありますが、画面に子を追加することさえありません。これが.flaファイルです:-

http://www.mediafire.com/download/lwol38o4454sphp/Game.fla

そしてここにコードがあります:-

import flash.events.Event;
import fl.motion.MotionEvent;

addEventListener (Event.ENTER_FRAME,moveturret);
Mouse.hide();
var firegun:boom22 = new boom22();

function moveturret (e:Event)

{
    aim.x = mouseX
    aim.y = mouseY
    var differenceX = mouseX - turret.x;
    var differenceY = mouseY - turret.y;
    var radianToDegrees = (Math.PI/180);
    turret.rotation = Math.atan2(differenceY, differenceX)/radianToDegrees;
}


stage.addEventListener(MouseEvent.CLICK,fire);

function fire (e:MouseEvent)

{
    firegun.x = mouseX
    firegun.y = mouseY
    addChild(firegun);
}
4

1 に答える 1

0

クリップの再生が終了したことを確認するイベント リスナーを追加してから、それ自体を削除することができます。

たぶん次のようなもの:

// within your fire() event handler
addChild(firegun);
firegun.gotoAndPlay(1); // just in case
firegun.addEventListener(Event.ENTER_FRAME, removeSelfWhenDone, false, 0, true);



// then new method:
// on every frame tick, check if last frame is reached, if so, remove it from it's parent (which would be the stage)
function removeSelfWhenDone(inputEvent:Event):void {
    var clip:MovieClip = (MovieClip) (inputEvent.target);
    if(clip.currentFrame == clip.totalFrames){
        // also remove the event listener (as it gets added again later)
        clip.removeEventListener(Event.ENTER_FRAME, removeSelfWhenDone, false);
        clip.parent.removeChild(clip);
    }
}
于 2013-06-15T10:35:31.360 に答える