PDA

Просмотр полной версии : TileList и доступ к своему компоненту


charmer
09.10.2008, 15:10
Здравствуйте.
Подскажите, пожалуйста, как нужно обратиться к свойству компонента, находящегося внутри собственного компонента, если собственный компонент является элементом TileList. Через id- не получается(. На форуме пишут, что проблема может быть в том, что он еще не создан полностью.
У меня в общем виде такая задача:
по нажатию на кнопку добавиь в TileList свой компонент и поменять свойство входящего в него компонента, например, для Label - text.
Компонент добавляется нормально, в самом компоненте добавлен listener на CREATION_COMPLETE. После создание Label.text получает нужное значение. А вот как сделать, чтобы после его появления в tilelist можно было изменить текст?

charmer
21.10.2008, 19:13
Что-то никто не отвечает...:(
Попробую задать вопрос более подробно...
Есть TileList. В него добавляются компоненты:

var new_component:Item=new Item();
new_component.lbl.text="новый текст"; //не работает
trace(new_component); //выдает Item
trace(new_component.lbl); //null
trace(new_component.lbl.text); //TypeError: Error #1009: Cannot access a property or method of a null object reference
TileListdp.addItem(new_component);
TileListdp- это ArrayCollection.
Item- это мой компонент на основе Canvas:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="188" height="162" creationComplete="MyF(event)" xmlns:ns1="myComponents.*">
<mx:Script>
<![CDATA[
.........
]]>
</mx:Script>
<ns1:IntoItem3 x="10" y="10" width="168">
</ns1:IntoItem3>
<mx:CheckBox x="157" y="110" label="выбор" />
<mx:Label id="lbl" x="11" y="130" text="old" width="164" height="25" />
</mx:Canvas>
Скажите, пожалуйста, как после добавления в TileList изменить new_component.lbl.text?

CyberGhost
25.10.2008, 15:22
В Script пишем
[Bindable]
private var text:String;

Label меняем на
<mx:Label id="lbl" x="11" y="130" text="{text}" width="164" height="25" />

Задаем новый текст так
new_component.text="новый текст"

charmer
28.10.2008, 18:57
Так пробовала.. не получается..
Только public вместо private..
значение text нужно изменить из другого mxml... т.е. из главного, в котором находится кнопка. При нажатии на кнопку нужно добавить компонент и изменить его lbl.