Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Как программно присвоить значение my_button.click (http://www.flasher.ru/forum/showthread.php?t=169894)

linnard 14.10.2011 03:16

Как программно присвоить значение my_button.click
 
Здравствуйте, подскажите пожалуйста как программно присвоить значение my_button.click в Flex Builder. Допустим, стандартно по нажатии на кнопку my_button, вызывается функция onChange(), которая должна менять значение click="onChange()" на click="onStart()" .

вот мой вариант, но он не работает:
Код AS3:

 
private function onChange():void{
my_button.addEventListener(MouseEvent.CLICK, onStart);
}
<s:Button id="my_button" label="Change" click="onChange()" enabled="true"/>


fljot 14.10.2011 06:19

Обработчики событий через mxml задаются так, что их очень трудно убрать. Подписывайтесь-отписывайтесь с помощью ActionScript.

linnard 14.10.2011 16:39

Цитата:

Сообщение от fljot (Сообщение 1039067)
Подписывайтесь-отписывайтесь с помощью ActionScript.

Каким образом?

GBee 14.10.2011 16:51

Когда кнопка создастся подпишитесь, как вы сделали в onChange

miki 14.10.2011 16:51

Цитата:

my_button.addEventListener(MouseEvent.CLICK, onStart);
ты уже сам делаешь)

Genzo 14.10.2011 17:12

Код AS3:

private function onAdded(e:Event = null):void{
                my_button.addEventListener(MouseEvent.CLICK, onStart);
            }
            private function onStart(e:MouseEvent):void
            {
                if(my_button.hasEventListener(MouseEvent.CLICK)) my_button.removeEventListener(MouseEvent.CLICK, onStart);
                my_button.addEventListener(MouseEvent.CLICK, onOtherClick);
            }
 
<s:Button id="my_button" label="Change" added="onAdded()" enabled="true"/>


linnard 14.10.2011 17:25

Всем спасибо, разобрался!

Silicium 14.10.2011 23:15

А вот если в MXML обработчик повесить не так:
Код AS3:

click="click_handler(event)"

, а так:
Код AS3:

click="{click_handler}"

, то отписаться от него можно будет removeEventListener-ом?
(Билдера под рукой сейчас нет, так что сам не проверю)


Часовой пояс GMT +4, время: 11:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.