HaxeFlixel - 将FlxTypedGroup传递到另一个FlxState的问题

时间:2015-03-11 14:32:11

标签: haxe openfl haxeflixel

FlxTypedGroup传递给新的FlxState后,从新状态收到此错误消息:

Invalid field access : length

我的代码:

某些操作后,在GameState类中

FlxG.switchState(new EvaluationState(ingredients));

请注意ingredientsFlxTypedGroup<Ingredient>且不为空。

评估状态中的

var ingredients:FlxTypedGroup<Ingredient>;
public function new(i:FlxTypedGroup<Ingredient>) 
{
    super();
    ingredients = i;
}

override public function create():Void 
{
    super.create();

    for (ing in ingredients)
    {
        trace(ing.active);
    }   
}

在调用null后,我create()函数即可ingredients.members。{/ p>

有没有人知道如何将FlxTypedGroup传递给新的FlxState而不会破坏它?

1 个答案:

答案 0 :(得分:2)

当切换发生时,您的组似乎正在另一个状态中被销毁。

创建“成分”的先前状态如何?如果该组被添加到最后一个状态,最可能的原因是当切换它时会在成分上调用“destroy()”。

尝试将其作为参数传递给EvaluationState之前从状态中删除,以查看这是否解决了您的问题。

currentState.remove(ingredients); //This should prevent a null members
FlxG.switchState(new EvaluationState(ingredients));