Установить свойство элемента управления в другом состоянии? - Flex 4 - PullRequest
0 голосов
/ 20 января 2011

У меня проблемы с установкой свойства элемента управления в другом состоянии.

Latest_News_Display находится в состоянии Latest_News .Я хочу установить свойство Latest_News_Display x , даже если currentState установлено на Intro .Однако, когда я пытаюсь использовать Latest_News.Latest_News_Display.x = 10 , он возвращает сообщение об ошибке 1120: доступ к неопределенному свойству Latest_News .Итак, как мне это сделать?

1 Ответ

1 голос
/ 20 января 2011

Нет гарантии того, что компонент в другом состоянии был создан в тот момент, когда вы пытаетесь его установить. Трудно сказать наверняка, не увидев ваш код, но я предполагаю, что это проблема, связанная с вашей ошибкой.

Вам, в принципе, придется создать свой собственный метод установки отложенного значения. Итак, когда вы пытаетесь установить его, сделайте что-то вроде этого:

if(Latest_News_Display){
 Latest_News_Display.x = 10
} else {
 cachedLatest_News_DisplayX = 10
}

Затем прослушайте событие currentStateChange и установите новое значение:

protected function onCurrentStateChange(event:StateChangeEvent):void{    
Latest_News_Display.x = cachedLatest_News_DisplayX 
}

Я также добавлю, что, исходя из выделенных жирным шрифтом элементов в вашем вопросе, похоже, что вы пытаетесь получить доступ к состоянию с именем Latest_News. Если вы создаете локальную переменную, указывающую на определенное состояние, вы можете сделать это. Но, если вы используете MXML, то, вероятно, нет. Тем не менее, состояние - это, по сути, массив переопределений, к которым вы не сможете напрямую обращаться к компонентам в этом состоянии.

...