Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обращение к вложеному символу из класса (http://www.flasher.ru/forum/showthread.php?t=129717)

incorp 08.09.2009 19:14

Обращение к вложеному символу из класса
 
В продолжение темы "как привыкнуть к ас3 когда думаешь на ас2":) К сути. В библиотеке есть символ с линкейджем, внутри него есть другой мувик названый "state".(написано в поле через контрол ф3, тобишь пропертя "name") Хочу переместить вложеный мувик на нужную метку в кадре.
Код AS3:

var newGem:McGem = new McGem();
_graphic.addChild(newGem);
newGem.gotoAndStop(newGem.type);
newGem.state.gotoAndStop("_normal");//вот здесь проблема

newGem.state при трейсе выводит нулл. фокусы вроде newGem["state"] теперь не спасают. линкейджить каждый внутренний мувик чтобы затем динамически его добавлять - не хочется. Как предупредить долбаный компилятор, что внутри newGem всегда есть другой символ с именем state?
Да, забыл сказать это кусок приватной функции.

fljot 08.09.2009 19:25

грамотный:
1. в свойствах публикации - as3 properties - отключить automatically declare stage instances
2. в классе McGem явно объявить public var state:MovieClip или какой там у вас тип

впринципе фокус вроде newGem["state"] должен работать.

но ваша беда наверное в том, что объект с именем state существует только в кадре newGem.type, а обращаетесь вы к нему сразу после gotoAndStop, когда требуемый кадр ещё не готов - надо сделать задержку в кадр, тогда будет доступ к state

etc 08.09.2009 19:52

getChildByName

Hidest 08.09.2009 19:53

Дык, может getChildByName(name:String):DisplayObject, спасет? плюс дальнейший кастинг к MovieClip.

incorp 08.09.2009 20:56

спасибо, помогло, разобрался


Часовой пояс GMT +4, время: 21:08.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.