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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.10.2006, 18:48
DeniOR вне форума Посмотреть профиль Отправить личное сообщение для DeniOR Найти все сообщения от DeniOR
  № 1  
Ответить с цитированием
DeniOR

Регистрация: Feb 2004
Сообщений: 43
Question Можно ли изменить порядок слушателей?

Собственно сабж. Есть несколько слушателей на одно и то же событие, однако вот казус, как показал тест сначала выполняется последний слушатель, а потом по порядку все остальные, т.е. в обратном порядке относительно их добавления. Не понятно для чего это сделано. Было бы логично сначала тот который первый добавлен, а потом все по порядку, однака у флэша своя логика...

Старый 20.10.2006, 18:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А что используется в качестве вещателя?

Старый 20.10.2006, 18:58
motor4ik вне форума Посмотреть профиль Отправить личное сообщение для motor4ik Посетить домашнюю страницу motor4ik Найти все сообщения от motor4ik
  № 3  
Ответить с цитированием
motor4ik
 
Аватар для motor4ik

Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
Stage, обрабатывает подрят , но всеровно как поменять? просто переприсвоить?

Старый 20.10.2006, 19:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Тогда сделать массив слушателей, отсортировать как нужно и пробежаться по нему, подписывая элементы на Stage.

Старый 20.10.2006, 19:10
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
А почему вы считаете что это логично? Для вас удобно так, а для других как есть. Не надо личные желания выдавать за общие.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.10.2006, 19:25
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от DeniOR
Собственно сабж. Есть несколько слушателей на одно и то же событие, однако вот казус, как показал тест сначала выполняется последний слушатель, а потом по порядку все остальные, т.е. в обратном порядке относительно их добавления. Не понятно для чего это сделано. Было бы логично сначала тот который первый добавлен, а потом все по порядку, однака у флэша своя логика...
да как бы так(т.е. в порядке добавления) и есть:
Код:
var l1={onResize:function(){trace("1")}};
var l2={onResize:function(){trace("2")}};
Stage.addListener(l1);
Stage.addListener(l2);
//при ресайзе выдет 1, 2 т.е. в порядке добавления
//перетасуем
//Stage["_listeners"].reverse();//2, 1 : в обратном порядке
смотри внимательнее как/когда добавляешь..

Старый 20.10.2006, 19:28
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
silin, ну это же хак =)
Лучше легально изменять список.
Или сделать что-то типа интерфейса к Stage, класс, который является вещателем и сам подписан на Stage и при onResize шлёт всем своим подписчикам событие onResize.
К примеру, мой StageManager.


Последний раз редактировалось etc; 20.10.2006 в 19:48.
Старый 20.10.2006, 19:29
DeniOR вне форума Посмотреть профиль Отправить личное сообщение для DeniOR Найти все сообщения от DeniOR
  № 8  
Ответить с цитированием
DeniOR

Регистрация: Feb 2004
Сообщений: 43
Цитата:
Сообщение от silin
да как бы так(т.е. в порядке добавления) и есть:
Код:
var l1={onResize:function(){trace("1")}};
var l2={onResize:function(){trace("2")}};
Stage.addListener(l1);
Stage.addListener(l2);
//при ресайзе выдет 1, 2 т.е. в порядке добавления
//перетасуем
//Stage["_listeners"].reverse();//2, 1 : в обратном порядке
смотри внимательнее как/когда добавляешь..
Странно, пробовал для теста весить на мх кнопарь несколько слушателей на "click" - выполняются в обратном порядке, может из-за
addEventListener ?

Старый 20.10.2006, 19:32
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
DeniOR, addEventListener используется в EventDispatcher, но там, как такового, нет массива слушателей, там используется объект.

Старый 20.10.2006, 19:44
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 10  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
2DeniOR: _etc тебе дело говорит - это будет самый правильный вариант

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

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

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


 


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


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