2011-09-12 1 views
0

В моем приложении Flex 4.5 у меня есть TitleWindow Settings.mxml, который вызывается PopUpManager.Получение приложения для вызова его метода

Как только пользователь изменил некоторые настройки, мне нужно не только сохранить их в SharedObject, но и применить их к самому основному приложению - чтобы изменения были немедленно видны пользователю.

Например, мне нужно вызвать его метод hideApp (somevalue);

У spark.components.Application, похоже, нет никаких статических/одиночных методов, чтобы получить его.

Итак, как вы это делаете?

И еще мне интересно, как объявить, что файл MXML реализует один или несколько интерфейсов?

package { 
    public interface Hiddable { 
    function hideApp(value:Number):void; 
    } 
} 

Я спрашиваю об этом, потому что кроме основного применения у меня есть SettingsTest.mxml Применение в моем проекте для «модульного тестирования» конкретной функциональности.

Спасибо! Alex

ответ

1

О реализации интерфейсов в MXML компонентов см the following documentation.

насчет прохождения измененных данных от вашей всплывающего окна к приложению Я рекомендую вам использовать Observer pattern с флэш-событийной модели что-то вроде следующего:

var myWindow:MyWindow = MyWindow(PopUpManager.createPopUp(this, MyWindow)); 
myWindow.addEventListener(MyWindowEvent.SUBMIT, myWindowSubmit); 

private function myWindow(event:MyWindowEvent):void 
{ 
    // Unsubscribing from events 
    var myWindow:MyWindow = MyWindow(event.currentTarget); 
    myWindow.removeEventListener(MyWindowEvent.SUBMIT, myWindowSubmit); 
    // Changed data is passing with custom event object 
    someData = event.someData; 
} 

И вы должны реализовать пользовательское событие для этого (MyWindowEvent в моем псевдокоде) и отпустите его от вашего TitleWindow компонента. Подробнее о реализации пользовательского события in documentation.

3

Да, это делает:

FlexGlobals.topLevelApplication 

хотя я бы рекомендовал вам использовать событие, чтобы избежать тесной связи.

Что касается вопроса об интерфейсах: используйте атрибут implements

<s:Component ... implements="IClassA,IClassB" ... /> 

 Смежные вопросы

  • Нет связанных вопросов^_^