将FlxTypedGroup
传递给新的FlxState
后,从新状态收到此错误消息:
Invalid field access : length
我的代码:
某些操作后,在GameState类中:
FlxG.switchState(new EvaluationState(ingredients));
请注意ingredients
为FlxTypedGroup<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
而不会破坏它?
答案 0 :(得分:2)
当切换发生时,您的组似乎正在另一个状态中被销毁。
创建“成分”的先前状态如何?如果该组被添加到最后一个状态,最可能的原因是当切换它时会在成分上调用“destroy()”。
尝试将其作为参数传递给EvaluationState之前从状态中删除,以查看这是否解决了您的问题。
currentState.remove(ingredients); //This should prevent a null members
FlxG.switchState(new EvaluationState(ingredients));