HaxeFlixel - 将 FlxTypedGroup 传递到另一个 FlxState 时出现问题
HaxeFlixel - issue with passing FlxTypedGroup into another FlxState
将 FlxTypedGroup
传递到新 FlxState
后,我从新状态收到此错误消息:
Invalid field access : length
我的代码:
在 GameState class 特定操作后:
FlxG.switchState(new EvaluationState(ingredients));
请注意 ingredients
是 FlxTypedGroup<Ingredient>
并且它不是空的。
在 EvaluationState 中:
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);
}
}
调用 ingredients.members
.
后,我也在 create()
函数中得到 null
有谁知道如何将 FlxTypedGroup
传递给新的 FlxState
而不破坏它?
切换的时候你的组貌似正在以另一种状态被摧毁
创建"ingredients"之前的状态如何?如果将组添加到最后一个状态,最可能的原因是切换时它调用 "destroy()" 成分。
在将 is 作为参数传递给 EvaluationState 之前尝试将其从状态中移除,看看这是否能解决您的问题。
currentState.remove(ingredients); //This should prevent a null members
FlxG.switchState(new EvaluationState(ingredients));
将 FlxTypedGroup
传递到新 FlxState
后,我从新状态收到此错误消息:
Invalid field access : length
我的代码:
在 GameState class 特定操作后:
FlxG.switchState(new EvaluationState(ingredients));
请注意 ingredients
是 FlxTypedGroup<Ingredient>
并且它不是空的。
在 EvaluationState 中:
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);
}
}
调用 ingredients.members
.
create()
函数中得到 null
有谁知道如何将 FlxTypedGroup
传递给新的 FlxState
而不破坏它?
切换的时候你的组貌似正在以另一种状态被摧毁
创建"ingredients"之前的状态如何?如果将组添加到最后一个状态,最可能的原因是切换时它调用 "destroy()" 成分。
在将 is 作为参数传递给 EvaluationState 之前尝试将其从状态中移除,看看这是否能解决您的问题。
currentState.remove(ingredients); //This should prevent a null members
FlxG.switchState(new EvaluationState(ingredients));