我正试图制造一个坠落的炸弹和爆炸效果。我创建了一个带有嵌套补间动画的bomb1然后我创建了炸弹2,爆炸效果嵌套在炸弹内的另一个深度。我的希望是,当炸弹击中目标时,向下的动作将停止,同时会发生爆炸。问题是我不能同时发生这两个动作,它要么完全停止动作,要么在炸弹继续向下时爆炸。我无法让两个动作同时发生。 bomb1.stop();
应该停止向下移动,bomb1.bomb2.gotoAndPlay(31);
应该会产生爆炸效果。任何的想法?
import flash.events.Event;
var bombPlaying: Boolean = true;
this.addEventListener(Event.ENTER_FRAME, handleCollision);
function handleCollision(evt: Event): void {
if (bomb1.hitTestObject(gLine1)) {
bomb1.stop();
bomb1.bomb2.gotoAndPlay(31);
}
}
答案 0 :(得分:0)
我无法在不看项目的情况下对您的具体细节发表评论,但针对您的问题的可能解决方法是尝试此操作:
import flash.events.Event;
var bombPlaying: Boolean = true;
this.addEventListener(Event.ENTER_FRAME, handleCollision);
function handleCollision(evt: Event): void {
if (bomb1.hitTestObject(gLine1)) {
bomb1.stop();
setTimeout(bomb1.bomb2.gotoAndPlay, 0, 31);
}
}
这会触发你的bomb1.bomb2.gotoAndPlay函数在下一帧被调用,这可能会缓解你的问题。
答案 1 :(得分:0)
我找到了解决方案。必须在bomb1.stop();bomb1.bomb2.gotoAndPlay(31);
import flash.events.Event;
bomb1.gotoAndStop(1);
myButton.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event: MouseEvent): void {
bomb1.gotoAndPlay(1);
this.addEventListener(Event.ENTER_FRAME, handleCollision);
}
function handleCollision(evt: Event): void {
if (bomb1.hitTestObject(gLine1)) {
this.removeEventListener(Event.ENTER_FRAME, handleCollision);
bomb1.stop();
bomb1.bomb2.gotoAndPlay(31);
}
}