我的Flash游戏存在多个帧的时间轴(我知道我应该避开时间轴) 游戏的重点是点击式冒险。当您进入和离开房间时,您能够获取的对象会相应地生成并销毁。现在我的问题是当进入第14帧(来自第12帧的accessibel)时,它会创建一张纸,如果你有另一个项目,你可以拿起它。现在我的问题是,当你不能或不拿起纸张并返回到第12帧(仅退出到第12帧)时,你不能点击任何其他物体而你基本上卡在第12帧上。当离开和进入其他房间时,它工作正常,但由于某种原因,它不适用于第14帧的纸张。
我删除对象的代码如下:
在我的Main.as Documentclass中,我有一个在游戏开始后立即调用的函数,该函数执行以下操作
if (lastframe == 14)
{
trace (prop.numChildren);
while (prop.numChildren )
{
prop.removeChildAt(0);
}
}
从帧移动时建立lastframe变量 这个函数可以在框架本身找到(每个出口函数都在它自己的框架上)
function exitKantine(event:MouseEvent):void
{
Main.lastframe = 14;
gotoAndStop(12);
}
删除道具的功能实际上会删除它,但会导致所有其他可点击的对象无法使用。
感谢您查看我的问题,并提前感谢您的建议
答案 0 :(得分:0)
我会说,不是删除子项,而是在开头添加一次,在开头添加所有侦听器,并切换可见性,而不是每次要隐藏它时尝试addChild和removeChild。使用数组,这样您就可以同时进行一些操作。
类似的东西:
private function init():void
{
assignVars();
addListeners();
stage.addChild // make sure this is in document class or you are passing stage to the class using it
}
for (var i = 0; i < _thingsAry.length; i++)
{
if (_thingsAry[i] == 14)
{
_thingsAry[i].visible = false;
trace("the visibility of _thingsAry[" + i + "] is " + _thingsAry[i].visible
}
}