谁能解释显示对象的“名称”属性与getChildByName(“XXX”)函数找到的值之间的区别?它们 90% 的时间都是一样的,直到它们不一样,事情就崩溃了。
例如,在下面的代码中,我仅通过直接检查孩子的 name 属性来按实例名称查找对象;getChildByName()失败。
var gfx:MovieClip = new a_Character(); //(a library object exported for Actionscript)
var do1:DisplayObject = null;
var do2:DisplayObject = null;
for( var i:int = 0 ; i < gfx.amSword.numChildren ; i++ )
{
var child:DisplayObject = gfx.amSword.getChildAt(i);
if( child.name == "amWeaponExchange" ) //An instance name set in the IDE
{
do2 = child;
}
}
trace("do2:", do2 );
var do1:DisplayObject = gfx.amSword.getChildByName("amWeaponExchange");
生成以下输出:
do2: [object MovieClip]
ReferenceError: Error #1069: Property amWeaponExchange not found on builtin.as$0.MethodClosure and there is no default value.
Flash在想什么?