Flash AS2:如何删除OneInterFrame?
为了我的生命,我不能让这件事停止。我最初是在AS3中编写这段代码的,但是当我的项目经理给我规范时,他们希望它出现在AS2中。其实没什么大不了的,大部分代码只是需要一些调整 然而,在这一部分中,我向后播放了movieclip的一小部分(作为退出动画,与介绍动画相反)。在AS3中,它进行得很顺利,如下所示:Flash AS2:如何删除OneInterFrame?,flash,actionscript-2,Flash,Actionscript 2,为了我的生命,我不能让这件事停止。我最初是在AS3中编写这段代码的,但是当我的项目经理给我规范时,他们希望它出现在AS2中。其实没什么大不了的,大部分代码只是需要一些调整 然而,在这一部分中,我向后播放了movieclip的一小部分(作为退出动画,与介绍动画相反)。在AS3中,它进行得很顺利,如下所示: function playExit() { this.gotoAndStop(MovieClip(root).exitLabel); this.addEventListene
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();
}
}
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();
}
}
现在我正试图将其转换为AS2。看起来应该是这样的:
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();
}
}
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();
}
}
然而,即使在输出中显示“向后完成”之后,我的小happy backwards trace语句似乎仍在运行(因此没有被删除)。因此,当动画循环时,它甚至根本不显示,因为它仍在尝试向后运行。没有编译错误,我也没有收到任何其他错误。我错过什么了吗
为Flash Player 8(AS2)设置发布设置
谢谢你
编辑:我试过这样做,因为我认为这可能是一个范围问题,但它只会使它更糟,因为它甚至没有向后播放(movieclip留在舞台上)
我是个白痴。这总是发生在我发布问题之后 事实证明,“向后完成”从未在我的输出中出现(我运行ctrl F来查找它,但它不在那里,是另一个跟踪语句使我相信它出现了) 不管怎样,我忘了换衣服了
this.currentFrame
到
再次感谢大家。这里输入错误-这个。_currentframe(带小f)不,它和大写字母f一样正确。“currentframe”不是关键字;它区分大小写。不过谢谢你。不,你错了。在AC2中,右边的一个是_currentframe。currentFrame是AC3属性。我不知道该告诉你什么。我输入了_currentframe,但它并没有变为蓝色,就好像Flash并没有在_currentframe的位置识别它一样。它也适用于_currentFrame,所以我不打算修复未损坏的内容。我不知道它为什么有效,但它确实有效。谢谢你的洞察力。但我明白你在文档中的意思:它是AC2魔术。有时候有些不应该的事情——不起作用。有时某些事情肯定应该——不会)