событие отправки в Flex 4 - PullRequest
0 голосов
/ 09 мая 2011

Я не смог получить событие для отправки. в моем коде чего-то не хватает?

Application1.mxml:

<s:Button x="50" y="10" label="Button" click="dispatchEvent(new Event('buttonToggle'))"/>

component1.mxml

    [Bindable(event="buttonToggle")] 
    public function disableChk():void {
trace("event");
}

1 Ответ

0 голосов
/ 09 мая 2011

Не очень понятно, что вы хотите спросить, но я попытаюсь объяснить код, который я вижу.

Сначала события диспетчеризации и прослушивания выполняются dispatchEvent() и addEventListener() из flash.events.EventDispatcher.Так что вы отправляете событие правильно.Но как насчет прослушивания?Чтобы прослушать событие, вы должны добавить что-то вроде (в том же классе MXML, в который отправляется событие):

addEventListener("buttonToggle", onButtonToggle);
…
private function onButtonToggle(event:Event):void
{
    trace("event");
}

Как в вашем примере речь идет не об обработке событий, а о привязке данных ,И, конечно, привязка данных зависит от диспетчеризации / обработки событий изнутри, но существуют некоторые ограничения, чтобы проверить, работает ли диспетчеризация событий с использованием привязки данных.

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

  1. Использование привязываемой функции без возврата значения (у вас есть void) не имеет смысла.
  2. Даже если ваша функция вернет значение, оно выигралоне вызывайте, если в атрибутах MXML нет никаких привязок к этой функции.

Но для решения проблемы вашего кода (но не вашего вопроса) нам нужно иметь больше информации о вашей цели и больше кодао вашей реализации.

Для простейшего способа обработки событий компонентов MXML внутри одного компонента вы можете использовать очень простые обработчики:

<s:Button x="50" y="10" label="Button" click="myClickHandler()"/>

и:

private function myClickHandler():void
{
    trace("Event");
}

Вы можете прочитать больше об обработке событий из официальной документации .

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