对于我的生活,我不能让这个事件停止。我最初在AS3中编写了这段代码,但是当我的项目经理给我规格时,他们想要在AS2中。并不是什么大不了的事,大多数代码只需要一些调整。
然而,在这一部分中,我向后播放一个动画片段的一小部分(作为退出动画,与其前奏动画相反)。在AS3中,它顺利进行:
function playExit() {
this.gotoAndStop(MovieClip(root).exitLabel);
this.addEventListener(Event.ENTER_FRAME, playBackwards);
}
function playBackwards(e:Event) {
this.prevFrame();
if(this.currentFrame == 1) {
this.removeEventListener(Event.ENTER_FRAME, playBackwards);
finishExit();
}
}
现在我试图将其转换为AS2。似乎 应该像这样工作:
function playExit() {
this.gotoAndStop(_root.exitLabel);
this.onEnterFrame = function() {
playBackwards();
}
}
function playBackwards() {
trace('Backwaaaaaaaaards, woooo!!');
this.prevFrame();
if(this.currentFrame == 1) {
delete this.onEnterFrame;
trace('Backwards Completed.');
finishExit();
}
}
然而,即使在我的" Backwards Completed之后,似乎我的小快乐向后跟踪语句仍然在运行(因此没有被删除)。"显示在输出中。因此,当动画循环时,它甚至根本不会显示,因为它仍在尝试向后运行。没有编译错误,我没有收到任何其他错误。我错过了什么吗?
为Flash Player 8,AS2设置发布设置。
请,谢谢你。
编辑:我的事件尝试了这样,因为我认为它可能是一个范围问题,但它只会使它变得更糟,因为它甚至没有倒退(电影剪辑停留在舞台上)。
function playExit() {
this.gotoAndStop(_root.exitLabel);
this.onEnterFrame = function() {
trace('Backwaaaaaaaaards, woooo!!');
this.prevFrame();
if(this.currentFrame == 1) {
delete this.onEnterFrame;
trace('Backwards Completed.');
finishExit();
}
}
}
答案 0 :(得分:0)
原来是“向后完成”。从来没有拉过我的输出(我跑ctrl F来找到它,它不在那里,这是一个不同的跟踪声明,让我相信它出现了。)
无论如何,我忘了改变
this.currentFrame
到
this._currentFrame
再次感谢,伙计们。