Flex 3: состояния: CreationPolicy = все - PullRequest
0 голосов
/ 10 ноября 2009

У меня есть компонент с другими состояниями, когда я назначаю какое-то значение в другом состоянии, я получаю ошибку времени выполнения [null]

Как я могу загрузить все состояния одновременно? используя создание политики или иным способом?

В TabNavigator creationpolicy = all решает эту проблему, но как решить эту проблему, когда существует много состояний?

Спасибо

Ответы [ 2 ]

1 голос
/ 22 мая 2012

Это не работает для flex 4.6, так как вы получаете сообщение об ошибке устаревания. Похоже, что компилятор mxml не распознает любую форму попытки принудительно загрузить компоненты во всех состояниях. Одним из способов решения этой проблемы является ручное переключение состояний во все те, которые вы используете, например: currentState = "Edit"; currentState = "Запись"; currentState = "По умолчанию"; обратите внимание, что вы не можете даже использовать для каждого в цикле строковые константы, вы должны использовать встроенные строковые литералы, чтобы компилятор mxml принял их.

Другое решение, которое кажется намного более удобным, - это инициализировать ваш компонент следующим образом:

ref: http://compacted.wordpress.com/2009/08/14/unit-testing-flex-states/#comments

public static function initializeStates(component:UIComponent):void {
  for each (var state:mx.states.State in component.states) {
    for each (var override:IOverride in state.overrides) {
      override.initialize();
    }
  }
}
1 голос
/ 10 ноября 2009

Элемент AddChild имеет свойство creationPolicy, которое по умолчанию имеет значение «auto», но также принимает «all» или «none». Установка «все» должна работать для вас:

http://livedocs.adobe.com/flex/3/langref/mx/states/AddChild.html#creationPolicy

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