Может кто-нибудь объяснить разницу между свойством "name" экранного объекта и значением, найденным функцией getChildByName ("XXX") ? Они одинаковы в 90% случаев, пока это не так, и все разваливается.
Например, в приведенном ниже коде я нахожу объект по имени экземпляра только путем непосредственного изучения свойства имени дочернего элемента; 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.
Есть идеи, о чем думает Флэш?