spark titlewindow - вернуть данные в основное приложение - PullRequest
0 голосов
/ 26 октября 2011

Я создал окно заголовка spark (с использованием компонента mxml), в котором я выбираю некоторые элементы и хочу, чтобы они возвращались к переменным приложения Main. Например, в основном приложении у меня есть имя переменной currMaxPlayers: int, и в TitleWindows я создал форму, в которой вы можете выбрать количество игроков, при выборе номера и нажатии кнопки отправки я хочу, чтобы номер был выбран вернитесь в переменную currMaxPlayers в MainApplication. Я следовал инструкциям здесь http://help.adobe.com/en_US/flex/using/WS6c678f7b363d5da52e8f1ca1124a0430dcf-8000.html безуспешно.

Спасибо

1 Ответ

0 голосов
/ 26 октября 2011

Предполагая, что вы открываете свое собственное окно TitleWindow с помощью PopUpManager, PopUpManager должен отправить пользовательское событие со значением количества игроков, и компонент, который открывает TitleWindow, может прослушивать это событие. Без написания формальных проверок, напишите что-то вроде этого:

// In The component that creates the TitleWindow:
var newTitleWindow : MyTitleWindow = new MyTitleWindow();
newTitleWindow.addEventListener('numberOfPlayersChanged', onNumberofPlayersChanged); 
PopUpManager.addPopUp(newTitleWindow , this );

Ваш пользовательский класс событий:

package events
{
    import flash.events.Event;

    public class MyEvent extends Event
    {
        public var numberOfPlayers:int;

        public function MyEvent (type:String, bubbles:Boolean=false, cancelable:Boolean=false)
        {
            super(type, bubbles, cancelable);
        }
    }
}

В окне заголовка отправьте событие:

var newEvent : MyEvent = new MyEvent('numberOfPlayersChanged')
newEvent.numberOfPlayers = // whatever procedure you use to get the number of players
dispatchEvent(newEvent);

И вернемся к шаблону, который создает заголовок окна:

protected function onNumberofPlayersChanged(event:MyEvent):void{
  trace(event.numberOfPlayers);
  // do something else with number of players
}
...