Форум 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)

gloomyBrain 12.03.2012 21:50

Цитата:

создавать слушатель событий для каждой кнопки это по индийски
Ну да, switch-case на 128 кнопок куда круче

anmelegov 12.03.2012 22:21

Цитата:

Сообщение от gloomyBrain (Сообщение 1068593)
Ну да, switch-case на 128 кнопок куда круче

вы говорите чушь...
Код AS1/AS2:

public function mouseDownHandler(e:MouseEvent):void {
        if (e.target is Button) { (e.target as Button).action() }; // run button custom method
}


gloomyBrain 12.03.2012 23:29

Ну чушь так чушь. Спорить не хочется.
Могу сказать, что события - куда более гибкий способ. А уж тем более prototype - это вообще жесть из AS2.

anmelegov 12.03.2012 23:31

я не использую prototype

HardCoder 13.03.2012 00:13

Цитата:

Сообщение от gloomyBrain (Сообщение 1068593)
Ну да, switch-case на 128 кнопок куда круче

Цитата:

Сообщение от gloomyBrain (Сообщение 1068620)
Ну чушь так чушь. Спорить не хочется.
Могу сказать, что события - куда более гибкий способ. А уж тем более prototype - это вообще жесть из AS2.

gloomyBrain, а какие есть альтернативы? Просто, я всегда использовал конструкцию, похожую на то что предложил anmelegov. Решать каким-то другим способом не приходилось.
Действительно, что делать если 128 обьектов не только кнопки, а разные? При нажатии на любой выполняется разная задача. Вешать 128 слушателей? Так действительно делают?

Bgg 13.03.2012 00:22

Цитата:

Сообщение от HardCoder (Сообщение 1068632)
При нажатии на любой выполняется разная задача. Вешать 128 слушателей?

Точно так же вы будете пропихивать 128 коллбеков в свои разные кнопки.

anmelegov 13.03.2012 00:25

не знаю как работают слушатели событий на низком уровне, но подозреваю что это не одно и то же =)

Добавлено через 4 минуты
да и вообще если у меня 1 слушатель, я могу его в любой момент удалить, а потом при необходимости включить снова, в вашем подходе мне бы пришлось проходить двумерные массивы и выключать каждый по отдельности либо накрывать всё спрайтом, чтобы он перекрывал все интерфейсный элементы, а костыли я не люблю

Добавлено через 5 минут
то как реализовано у меня больше похоже на полиморфизм

Добавлено через 8 минут
я только что ради интереса открыл книжку мука и в ней написано что вы не правы на странице 564

Добавлено через 10 минут
со страницы 574 читайте подробнее

Bgg 13.03.2012 00:36

Цитата:

Сообщение от anmelegov (Сообщение 1068635)
Добавлено через 8 минут
я только что ради интереса открыл книжку мука и в ней написано что вы не правы на странице 564

Чо там пишут-то? Книгу не все читали — зоопарки не все писать умеют.

anmelegov 13.03.2012 00:40

пишут что надо использовать централизованный подход при диспетчеризации событий... могу скинуть книгу если интересно, я сам её только сегодня первый раз увидел, нашел много ответов на свои вопросы =)

Zebestov 13.03.2012 01:30

Цитата:

Сообщение от anmelegov (Сообщение 1068604)
Код AS1/AS2:

(e.target as Button).action(); // run button custom method


Что еще должна делать кнопка, кроме как предоставить возможность нажать себя и крикнуть об этом наверх?


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

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