PDA

Просмотр полной версии : Как изменить свойство у компонента?


Alexandor1984
19.04.2007, 13:38
Объяснить проблему не смогу, потому приведу пример.
Есть код
<?xml version="1.0" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="addLabel()">
<mx:Script>
<![CDATA[
import mx.controls.Label;
private function addLabel():void
{
var lbl:Label = new Label();
for (var i:int = 0; i <= 6; i++)
{
lbl = new Label();
MainVbx.addChild(lbl);
lbl.text = String(i);
}
}
]]>
</mx:Script>
<mx:Button label="3 -&gt; 9"/>
<mx:VBox id="MainVbx" width="100%" height="100%">
</mx:VBox>
</mx:Application>

Вопрос: подскажите, как добраться до лабела с цифрой 3 и поменять ее на цифру 9?

etc
19.04.2007, 13:43
Задать ему name.

Alexandor1984
19.04.2007, 13:52
А потом?
Как обратиться по имени?

etc
19.04.2007, 14:00
getChildByName

А можно было просто сохранить ссылку на него.

Alexandor1984
19.04.2007, 14:37
Чтото вроде этого getChildByName("name1").text = "9" ?
Дык не работает.

etc
19.04.2007, 14:55
Дык, MainVbx.getChildByName.
Да и проще ссылку сделать.

Alexandor1984
19.04.2007, 15:03
А как ссылку сделать?

etc
19.04.2007, 15:46
private function addLabel():void
{
var lbl:Label;
var myLabel:Label;
for (var i:int = 0; i <= 6; i++)
{
lbl = new Label();
if (i==3) {
myLabel = lbl;
}
MainVbx.addChild(lbl);
lbl.text = String(i);
}
myLabel.text = "9";
}

Alexandor1984
19.04.2007, 15:57
А если мне надо поменять 4 на 12, то и для 4 лабела тож ссылку создавать? Или мне надо поменять цифры на всех лабелах, то создавать ссылки для каждого лабела?
Я наверное чтото не понимаю.

etc
19.04.2007, 16:06
Задать всем name в виде 'lbl'+число и обращаться через getChildByName.

Alexandor1984
19.04.2007, 16:52
Когда я пишу MainVbx.getChildByName("lbl3").text = "9", то появляеться ошибка: не найдено свойство "text".

etc
19.04.2007, 16:54
Кастить потому что надо:
Label(MainVbx.getChildByName("lbl3")).text = "9"

Alexandor1984
19.04.2007, 17:14
Ага, спасибо.