我最近更改了显示对象的构造函数以验证它们是否在舞台上。但是,这完全破坏了我将值传递给子函数的能力。例如(为清楚起见,删除了很多代码):
家长:
public var var1:uint;
public var var2:uint;
public var childFunction:ChildFunction;
public function createChild():void
{
childFunction = new ChildFunction( var1, var2 );
addChild( childFunction );
}
孩子:
public var varA:uint;
public var varB:uint;
public function ChildFunction( varA:uint, varB:uint )
{
trace( varA, varB );
if ( stage )
{
onAddtoStage();
}
else
{
addEventListener( Event.ADDED_TO_STAGE, onAddtoStage );
}
}
public function onAddtoStage( e:Event = null ):void
{
trace( varA, varB );
}
在这个例子中,我会在第一个跟踪中得到正确的值var1
和var2
,但在第二个跟踪中得到 0 和 0。反复测试表明,离开构造函数后,一旦离开构造函数,varA和varB的值就被完全忘记了,即使它们被声明为公共变量。
我承认我对动作脚本有很多不了解,但这让我摸不着头脑。任何帮助深表感谢。我知道我可以从孩子那里查看父母中的变量,但这对我的需要不起作用;我需要将值传递下来并存储它们。