Событие отправки AIR с параметром - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть форма с полем поиска.Когда пользователь нажимает клавишу ввода, я использую httpservice для отправки запроса в базу данных MySQL.В некоторых случаях (много) существует несколько записей, поэтому открывается новое окно, в котором отображаются записи с сеткой данных, позволяющие пользователю выбрать хороший результат.

Моя проблема заключается в том, как отправить выбранную информацию первойокно (с текстовым полем).Я понимаю, что это событие отправки, но я не нашел, как его использовать!

Можете ли вы помочь мне найти решение?

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 октября 2013

Вот набор из четырех классов в качестве основы.Очевидно, что вы не хотите выполнять фактическую работу в конструкторах, как показано ниже.

<code>public class App
{
    public static var eventDispatcher:EventDispatcher = new EventDispatcher();
    public function App()
    {
        new Window1();
    }
}

class AppEvent extends Event
{
    public static const DATA_READY:String = "APPEVENT.DATA_READY";
    public var data:Object;
    public function AppEvent( type:String, data:Object )
    {
        super( type );
        this.data = data;
    }
}

class Window1
{
    public function Window1()
    {
        App.eventDispatcher.addEventListener( AppEvent.DATA_READY, onDataReady );
        ...DO STUFF...
        new Window2();
    }
    private function onDataReady( evt:AppEvent ) : void
    {
        ...DO STUFF WITH "evt.data"....
    }
}

class Window2
{
    public function Window2()
    {
        ...GET DATA FROM SERVER AND PUT IT IN "data"...
        App.eventDispatcher.dispatchEvent( new AppEvent( AppEvent.DATA_READY, data ) );
    }
}
0 голосов
/ 02 ноября 2011

Если вы пытаетесь общаться в среде MDI, я предлагаю вам использовать некую общую модель (иначе говоря, модель посредника или презентацию), которая поддерживает контракт между желаемыми окнами.

class SelectionPM{
     [Bindable]
     public var selectedItem:Object;
}

Вариант использования:

Window1 имеет экземпляр SelectionPM, когда вы открываете Window2, вы передаете ему экземпляр SelectionPM, а затем обновляете свойство SelectionPM.selectedItem при изменении выделения в сетке данных Window2.Это распространит цепочку привязки до Window1, где вы можете использовать SelectionPM.selectedItem по своему желанию.

В идеале вы должны использовать контейнер IoC для внедрения модели, но это уже другая история.

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

Приветствия!

...