Как использовать строковую константу в объявлении идентификатора компонента MXML

#apache-flex #constants #mxml #identifier

#apache-flex #константы #mxml #идентификатор

Вопрос:

Мне было интересно, если у вас есть несколько файлов компонентов, которые используют один и тот же дочерний компонент (но с немного измененными параметрами), возможно ли присвоить этому дочернему компоненту идентификатор со строковой константой?

Когда я пытаюсь выполнить следующее в Flex SDK 3.5, это выдает ошибку компиляции:

 <!-- Example -->
<mx:Button id="{ComponentIDs.ID_BUTTON_ONE}" />
  

Ошибка:

 "{ComponentIDs.ID_BUTTON_ONE}" is not a valid identifier.
  

Есть предположения, возможно ли это вообще достичь? Отличается ли синтаксис для полей идентификатора?

Ответ №1:

Идентификаторы компонентов в MXML вычисляются во время компиляции. Таким образом, вы не можете использовать там какие-либо выражения.

Ответ №2:

Таким образом, это означает, что даже для тега state в его блестящей новой версии spark в mxml нельзя использовать ни одну форму строковых констант. Итак, конечно, следующая мысль разработчиков заключается в том, как это сделать в ActionScript, и все идет отлично для создания состояний в коде с использованием объектной нотации, … пока вы не поймете, что токен includeIn — это функция компилятора mxml и ничего не значит для ActionScript … Итак, вы должны продолжать использовать строковые литералы в своем коде