我是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);
}
答案 0 :(得分: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);
}
}