Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 24.02.2014, 14:24
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 11  
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Цитата:
Вызов функции, зная ее String имя
А нельзя ли для нуба объяснить, в чем вообще суть вопроса.

Что такое "String имя", это имя функции и есть?
Здесь, похоже, в явной форме нет ничего про это, как про отдельный термин.

Если же это просто имя функции, то что мешает нам вызывать её естественным путём?

Код AS3:
functionName();

Старый 24.02.2014, 15:20
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 12  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
caseyryan был бы очень признателен, если бы Вы вот что объяснили -
сто кнопок подписываю на клик в менеджере. Вызвалось событие, а как дальше? Как менеджер понимает,
что и куда ему нужно передавать, ведь каждый событие по своему обрабатывает?

Старый 24.02.2014, 15:34
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 13  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
caseyryan был бы очень признателен, если бы Вы вот что объяснили -
сто кнопок подписываю на клик в менеджере. Вызвалось событие, а как дальше? Как менеджер понимает,
что и куда ему нужно передавать, ведь каждый событие по своему обрабатывает?
Цитата:
сто кнопок подписываю на клик в менеджере.
Каких сто кнопок? Зачем вообще нужен такой менеджер? Это самому себе палки в колеса.
Подписывать каждую кнопку на событие... это, кхм.., не правильно что ли.

Цитата:
Вызвалось событие, а как дальше? Как менеджер понимает
а зачем тогда у события есть свойство target / currentTarget?

В любом случае, событие придет от кнопки, а не из "неведомого ниоткуда". Проверяем тип объекта отправителя события, а в нем, например, держим какое-то свойство типа section
Код AS3:
private function onButtonEvent(e:ButtonEvent):void {
    if (e.target is MenuButton) {
         var menuButton:MenuButton = e.target as MenuButton;
         if (menuButton.section == MenuButtonSections.CLAD_CHARACTER) {
                 // тут открываем раздел одевания персонажа
         }
    }
}
Цитата:
Если же это просто имя функции, то что мешает нам вызывать её естественным путём?
То, что не всегда это может быть явным образом прописано в коде. Название нужного метода, к примеру, может прийти с сервера. И как его тогда вызвать обычным способом?
тогда делаем просто this[functionName]();

п.с. Это, кстати, в ас3 все еще так упрощено до безобразия. В Java, например, такой подход не прокатит

Старый 24.02.2014, 15:52
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 14  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Каких сто кнопок? Зачем вообще нужен такой менеджер?
Это я придумал с целью увеличения вопроса..
Цитата:
Подписывать каждую кнопку на событие... это, кхм.., не правильно что ли.
Вот я тоже так думал, потом высказал это мнение, типа, есть панель для множества кнопок и на down, up и прочее подписывать не каждую кнопку, а саму панель. Но мне сказали что это не правильно. По этому, что Вы имели введу, когда сказали "неправильно", как лучше сделать?

Старый 24.02.2014, 16:25
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 15  
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Цитата:
Вот я тоже так думал, потом высказал это мнение, типа, есть панель для множества кнопок и на down, up и прочее подписывать не каждую кнопку, а саму панель. Но мне сказали что это не правильно. По этому, что Вы имели введу, когда сказали "неправильно", как лучше сделать?
На одной из стадий события, оно поднимается от stage выше, к дочерним элементам. Т.е. если оно проходит через контейнер кнопок и этот контейнер является EventDispatcher, то зачем кнопкам что-то слушать? Ловишь одно событие контейнером, в котором можно понять на какую кнопку попала мышь/палец/стилус.

Старый 24.02.2014, 17:21
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 16  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
подписывать не каждую кнопку, а саму панель. Но мне сказали что это не правильно
Кто сказал?

Старый 24.02.2014, 17:54
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 17  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Кто сказал?
Не скажу, это все равно не чего не изменит

Старый 24.02.2014, 18:02
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 18  
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Akopalipsis, 1,579 сообщений на форуме и ты не знаешь как работает EventDispatcher? Да вы читер батюшка.

Старый 24.02.2014, 18:26
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 19  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Про EventDispatcher я могу сказать, что я не знаю только того, о чем даже не подозреваю.
Но тут вопрос не о том, как он работает, а о том, правильно ли, что панель обрабатывает клики по кнопкам..
Хотя вот сейчас, кажется что и нашел недопонимание. И чтобы уточнить, я сделаю так, как очень люблю делать, утрирую. Есть панель-контейнер, в котором находится тысяча объектов, которые должны реагировать на клик.
И вот происходит клик по контейнеру, событие получает сцена и проверяет, координаты. По координатам показывает, что клик пришёлся по Main, в котором лежи контейнер. Main получив событие от сцены, проверяет единственного своего чилда на соответствие с координатами. ... Вот тут я понимаю, что и вправду не знаю, что происходит дальше... Получается, что когда контейнер возвращает true в hitTestObject, его проверяют наличие подписки в EventDispatcher. И когда оказывается, что он там есть, то вызывают его хандлер. Это так? Продолжу после ответа

Старый 24.02.2014, 19:01
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 20  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Получается, что когда контейнер возвращает true в hitTestObject, его проверяют наличие подписки в EventDispatcher.
Ничего там не проверяется, оно просто рассылается по всему дереву
И при чем тут hitTestObject?

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 13:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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