我有一个flash文件,其中第一帧包含两个按钮,其中一个将用户带到第二帧,另一个带到第三帧。在每个帧中,可以通过SimpleButton操纵各种文本字段和变量。第2帧和第3帧都有“后退”按钮,可以将它们带回第1帧。
目前,当用户第二次导航回第1帧(因此第三次播放)时,我的第二个按钮似乎不再存在,并且我收到错误。第1帧上的两个按钮都是通过Flash IDE放置的。为什么我的按钮突然出现,前两次完全没问题?下面是我的第1帧代码。“后退”按钮简单地删除事件侦听器,然后调用gotoAndStop(1)
var inited:Boolean;
var cache:SharedObject;
var libsans:Font = new libsansreg();
this.addEventListener(Event.ENTER_FRAME, frameEnter);
stats.addEventListener(MouseEvent.CLICK, statsclicked);
modules.addEventListener(MouseEvent.CLICK, modsclicked);
function initcache():void
{
this.cache = SharedObject.getLocal("RPG_Shooter")
}
function frameEnter(e:Event):void
{
if (!inited)
{
inited = true
initcache()
this.gotoAndStop(1)
}
}
function statsclicked(e:MouseEvent):void
{
this.removeEventListener(Event.ENTER_FRAME, frameEnter)
stats.removeEventListener(MouseEvent.CLICK, statsclicked)
modules.removeEventListener(MouseEvent.CLICK, modsclicked)
this.gotoAndStop(2)
}
function modsclicked(e:MouseEvent):void
{
this.removeEventListener(Event.ENTER_FRAME, frameEnter)
stats.removeEventListener(MouseEvent.CLICK, statsclicked)
modules.removeEventListener(MouseEvent.CLICK, modsclicked)
this.gotoAndStop(3)
}
答案 0 :(得分:1)
我实际上有过类似的问题。它与垃圾收集有关,这在Flash中并不是最好的,但是IDE的编译器设置让它变得更加疯狂。你可以尝试一些可能有用的技巧。
foo = null
放在第一帧上)var foo:MovieClip
放在第1帧上。重复播放您可能正在使用的所有提前命名的MovieClip。