2012-04-20 3 views
0

В flex 3 я создал дочерние компоненты на холсте с помощью компонента ретранслятора. Я хочу внести изменения только в один из дочернего компонента, созданного ретранслятором. Есть ли способ или способ доступа к конкретному дочернему компоненту и внесены необходимые изменения свойств?Компонент Flex Repeater

<mx:Repeater id="myrep" dataProvider="{myAC}"> 
    <mx:Label id="Label1" text="This is button "/> 
</mx:Repeater> 

В приведенном выше коде предположим, что у меня есть метка 10, и я хочу применить некоторые изменения только к 5-й метке? Является ли это возможным.

Thanks

ответ

1

Да, это возможно.

Вы можете получить доступ к сгенерированным компонентам ретранслятора следующим образом:

component_id[index] 

Так что в вашем случае для изменения метки 5 элемента, ваш код будет Label1[4].text='blah blah'. Однако изменение сгенерированных компонентов ретранслятора таким образом является плохой практикой. Вместо этого используйте привязки.

Например:

//... 
[Bindable] 
var myAC:ArrayCollection = new ArrayCollection(["label1","label2","label3","label4","label5","label6"]) ; 
//... 
<mx:Repeater id="myrep" dataProvider="{myAC}"> 
    <mx:Label id="Label1" text="{myrep.currentItem}"/> 
</mx:Repeater> 
//Changing label of 5th element 
myAC[4] = 'blah blah'; 
+0

+1 Пятый элемент для справки –

+0

удивительным. Благодарю. – TrexTroy