0

我的 Flash 游戏存在多帧时间线(我知道我应该避免使用时间线) 游戏的重点是点击式冒险。当您进入和离开房间时,您能够拾取的对象会相应地生成和销毁。现在我的问题是当进入第 14 帧(从第 12 帧访问)时,它会创建一张纸,如果您有其他物品,您可以拿起它。现在我的问题是当您不能或不拿起纸并返回第 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);
}

删除道具的功能实际上将其删除,但随后会导致所有其他可点击对象不可用。

感谢您查看我的问题并提前感谢您的建议

4

1 回答 1

0

我想说不是删除孩子,而是在开头添加一次,在开头添加所有侦听器,然后切换可见性,而不是每次想要隐藏它时都尝试添加和 removeChild。使用一个数组,这样你就可以同时发生一些事情。

像这样的东西:

私有函数 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
}
}
于 2013-07-22T04:15:39.997 回答