0

传入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

有谁知道如何在不破坏它的情况下FlxTypedGroup进入新的?FlxState

4

1 回答 1

2

当切换发生时,您的组似乎正在以另一种状态被破坏。

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

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

currentState.remove(ingredients); //This should prevent a null members
FlxG.switchState(new EvaluationState(ingredients));
于 2015-03-11T15:00:44.070 回答