Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   полиморфизм? (http://www.flasher.ru/forum/showthread.php?t=176483)

anmelegov 11.03.2012 23:18

полиморфизм?
 
вот допустим у меня есть кастомные кнопки на панельке, каждая из которых должна запускать разную функцию. Можно ли как-то сделать оверрайд метода в потомке класса Кнопка не создавая для каждой кнопки отдельный класс?
что-то типа такого
Код AS1/AS2:

button = new Button;
button.action = customFunction() { do somthing }

Добавлено через 29 минут
всё нашёл в книжке... надо использовать prototype .... тема закрыта

КорДум 11.03.2012 23:58

Публичная переменная click:Function?
Код AS3:

button.click = myFoo();
 
private function myFoo():void {
...
}

И эту функция вызывается по клику, прописанному в хендлере внутри самой кнопки?

Silicium 12.03.2012 00:07

Цитата:

каждая из которых должна запускать разную функцию
а обработка событий вообще на что?

AlexFrost 12.03.2012 19:21

тут вообще-то AS3, а не AS2.

если AS3(FD),то
Код AS3:

button.addEventListener(MouseEvent.CLICK, doSmth);
private function doSmth(e:MouseEvent):void
{
//ололол
}


КорДум 12.03.2012 19:21

А где Вы AS2 увидели?

AlexFrost 12.03.2012 19:25

я просто начал изучение AS сразу с AS3 и сразу в FD...
и не знаю таких конструкций:
Код AS3:

button.click=

плюс у ТС код помечен как AS1/AS2.
Это и подтолкнуло на мысль что речь идёт об AS2..

КорДум 12.03.2012 19:31

Цитата:

Публичная переменная click:Function?
Я написал, что есть click. Коллбэк это, если грубо говорить.

Котяра 12.03.2012 20:04

Код AS3:

button.click = myFoo();

надо
Код AS3:

button.click = myFoo;


КорДум 12.03.2012 20:18

Ой, да. Ссылка же.

anmelegov 12.03.2012 20:40

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


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

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