Передача параметра в функцию flex - PullRequest
1 голос
/ 24 июня 2010

У меня есть несколько TextInputs в определенной форме, которым был присвоен идентификатор в инкрементном порядке. Например:

<s:TextInput id = "index1"/>
<s:TextInput id = "index2"/>
<s:TextInput id = "index3"/>

На основе определенных условий я выбираю текст из соответствующего TextInput и передаю значение (index # .text) в функцию

 foo(var index:String)

Если бы у меня был только один из TextInput, я мог бы использовать:

foo(index1.text)

Может кто-нибудь подсказать, как я могу передать textInput, используя его идентификатор.

Спасибо.

-H

1 Ответ

0 голосов
/ 24 июня 2010

Я плюс один запрос на «определенные условия».Вы публикуете ссылку на тот факт, что вы не можете получить доступ к компоненту по имени, поэтому я пишу остальную часть этого на основе этого предположения.

Чтобы получить доступ к значениям компонента и передать параметры этого компонентав функцию вам нужен идентификатор или ссылка на этот компонент.Это проще всего, если вы используете имя компонента.Но это не всегда возможно.Например, компонент «Календарь Flextras» создает и отображает дни месяца.В зависимости от того, какой месяц отображается, может быть 28, 30 или 31 день.Доступ к ним с уникальным именем нецелесообразен.

это аналогичная ситуация в классе ListBased.Во время компиляции вы не будете знать, сколько itemRenderers вам понадобится или будет на экране одновременно.

Одним из способов решения этой проблемы является наличие массива соответствующих объектов (dayRenderers, itemRenderers или, в вашем случае, TextInputs).При выполнении обработки вы можете перебрать массив и обработать элемент.Примерно так:

for (var x = 0; x<objectArray.length; x++){
   foo(objectArray[x].text); 
}

Если вам по какой-то причине это нежелательно, вы можете зациклить дочерние элементы контейнера, выполнив что-то вроде этого:

for (var x = 0; x<container.numChildren; x++){
  var object : Object = this.getChildat(x);
  if(object is TextInput){ foo(object.text) }
}

Функционально,но иногда это может быть немного утомительно.Это действительно зависит от того, чего вы пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...