|
|
|||||
Регистрация: Feb 2006
Сообщений: 19
|
не работает addChild
Есть компонент, динамически грузит и прокручивает в себе фотки
Столкнулся с проблемой, что ни динамически, ни руками не создаются и не добавляются компоненты(фото) работает если не обращаться внутрь создаваемого компонента, если пытаться что-то сделать там, добавления не происходит не работает вообще, ни при каких условиях код компонента <?xml version="1.0" encoding="utf-8"?> <s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="95" initialize="bordercontainer1_initializeHandler(event)" backgroundColor="#000000" backgroundAlpha="0.23" xmlns:ns1="*"> <fx:Script> <![CDATA[ import mx.events.FlexEvent; protected function bordercontainer1_initializeHandler(event:FlexEvent):void { // TODO Auto-generated method stub var i:Number = 0; for each(var xml:XML in Slides.children()) { var m:Miniature = new Miniature(); m.x = i*100; m.y = 0; //m.load("ds"); this.addElement(m); i++; } } ]]> </fx:Script> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> <fx:XML id="Slides" source="Slideshow.xml"/> </fx:Declarations> </s:BorderContainer> <?xml version="1.0" encoding="utf-8"?> <s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="100" height="95" borderVisible="false"> <fx:Script> <![CDATA[ [Embed(source="Cadr.swf")] [Bindable] public var cadr:Class; public function load(url:String):void { txt.text = url; } ]]> </fx:Script> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <mx:SWFLoader x="0" y="0" width="100" height="95" source="{cadr}"/> <mx:SWFLoader id="MiniImg" x="0.9" y="12.8" width="98" height="70" scaleContent="true"/> <s:TextArea x="0.9" y="12.8" width="98" height="70" fontSize="10" id="txt"/> </s:BorderContainer> UPD: Проблема решена Не актуально Обращаться к созданному компоненту надо после его добавления, а не после объявления в переменной
__________________
Fide, sed cui, vide Последний раз редактировалось xaoc; 23.01.2011 в 16:07. |
|
|||||
В spark контейнерах нельзя использовать addChild.
Цитата:
|
|
|||||
Регистрация: Feb 2006
Сообщений: 19
|
Цитата:
Цитата:
Уже разобрался, вызов конструктора и инициализация происходит только после добавления на сцену
__________________
Fide, sed cui, vide |
|
|||||
Цитата:
Если под инициализацией вы подразумеваете создание внутренних компонентов объявленных в mxml, то она произойдет не сразу (зависит от нескольких факторов). Но к добавлению на сцену непосредственного отношения не имеет. Добавлено через 16 минут В частности внимательно прочитайте вот этот документ. Добавлено через 22 минуты Ну и в нагрузку. Это для компонентов Flex3, но для общего понимания полезно, ну и некоторые вещи актуальны и в flex4. |
|
|||||
Регистрация: Feb 2006
Сообщений: 19
|
Странно.
За ссылки спасибо, ознакомлюсь У меня выше описанный код заработал после замены на т.е только после добавления обращение становится возможным
__________________
Fide, sed cui, vide |
|
|||||
Все правильно, в первом случае createChildren (attachSkin для скинируемых компонентов) еще не вызван. По-сути вам надо было сделать так:
Последний раз редактировалось alatar; 23.01.2011 в 18:00. |
|
|||||
Регистрация: Feb 2006
Сообщений: 19
|
Благодарю. Разобрался
__________________
Fide, sed cui, vide |
Часовой пояс GMT +4, время: 20:26. |
|
« Предыдущая тема | Следующая тема » |
|
|