PDA

Просмотр полной версии : Доступ к child'am


BigDan
04.01.2007, 15:41
var spr:Sprite = new Sprite();
var mc:MY_MC = new MY_MC();
spr.addChild(mc);
trace(spr.mc);
//ошибка
var spr:Sprite = new Sprite();
var mc:MY_MC = new MY_MC();
spr.addChild(mc);
trace(mc);
//ошибки нет
Как это объяснить?

etc
04.01.2007, 16:42
mc.name="mc";

Nirth
04.01.2007, 18:57
Moderator: а че это тут делает? Перенес в ActionScript 3.0

Собственно по теме: Как мы помним в AS1-2 у каждого мувика, обязательно должно было быть "физическое тело" на сцене. таким образом при добавлении мувика на сцену, в родителе автоматом создавалось свойство, дающее доступ к этому мувику. свойство совпадало с instance идентификатором.

В AS3 физического представления не нужно, поэтому и нужды загружать плеер созданием лишних свойств (особенно учитывая то что Sprite и многие другие классы, закрыты и в них не могут быть добавлены свойства в рантайме, что кстати дает лишний прирост к скорости), делает старые способы вроде цепочек mc1.mc2.mc3.mc4 не нужными, вместо этого мы стучимся по ближайшей доступной ссылке на экземпляр DisplayObject'а.

P.S. написал сумбурно, надеюсь понятно. если нет позже распишу.

etc
04.01.2007, 22:04
А, чорт, забыл getChildByName написать :)