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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.08.2007, 20:53
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 21  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
но цикл быстрее, готов поспорить на мороженое что быстрее
__________________
33 коровы

Старый 09.08.2007, 21:25
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 22  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
а там все равно без цикла не обходится)))

Код:
for (var i:uint = 0;i < this.numChildren;i++) {
	var child:EditMenuButton = this.getChildAt(i) as EditMenuButton;
			
			if (child) {
			   //trace(child)
                        child.addEventListener('broadcastAll', child.broadcastAllHandler);
                        }
}
__etc, извини канешно, а ты тестил свой код?))
__________________
freelance | Раздор


Последний раз редактировалось etc; 10.08.2007 в 02:21.
Старый 10.08.2007, 02:20
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 23  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Нет, не тестил. Я примерную схему описал.

__i, да быстрее цикл, быстрее. В силу создания очередной копии ивента и вообще его создания при каждой итерации. Но я не думаю, что это принципиально на паре десятков кнопок.

Старый 10.08.2007, 03:01
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 24  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Со схемой я разобрался, спасибо.
я почему спросил..не работает код(


В классе ConstructorContainer не диспачится событие:

Код:
public function broadcastMess(evt:Event)
{
    //вот тут глухо
    dispatchEvent(new ConstructorEvent('broadcastAll'));
}
__________________
freelance | Раздор

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

Регистрация: Sep 2002
Сообщений: 30,784
А сам обработчик broadcastMess работает?

Старый 10.08.2007, 03:13
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 26  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
ага, работает
__________________
freelance | Раздор

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

Регистрация: Sep 2002
Сообщений: 30,784
Значит обработчик кнопок либо ничего не делает, либо не подписан на ивент.

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
возможно я не вполне проникся в чем тут трабл, тока я не вижу почему бы не заставить статический диспатчер вещать события на все экземпляры..
Код:
package {
	import flash.display.MovieClip;
	import flash.events.*;

	public class  MenuButton extends MovieClip{
		
		static private  var dispatcher:ButDispatcher=new ButDispatcher();
		
		public function MenuButton(){
                        dispatcher.addEventListener(ButDispatcher.BTN_STATUS, onStatus);
			addEventListener("click",onClick);
			addEventListener("rollOver",onOver);
		}
		
		private function onClick(evt:Event):void{
			dispatcher.broadcast("click");
		}
		
		private function onOver(evt:Event):void{
			dispatcher.broadcast("over");
		}
		
		public function onStatus(evt:ButEvent):void{
			trace(name+":"+evt.status);
		}
	}
}
Код:
package {
	import flash.events.*;
	class ButDispatcher extends EventDispatcher {
		public static var BTN_STATUS:String = "btnStatus";
		
		public function broadcast(status:String):void {
			dispatchEvent(new ButEvent(ButDispatcher.BTN_STATUS,status));
		}
	}
}
Код:
package {
	import flash.events.Event;
	public class  ButEvent extends Event{
		public var status:String;
		
		public function ButEvent(type:String,status:String=null){
			super(type);
			this.status=status;
		}
	}
}
насчет того что цикл быстрее, есть большие сомнения: нативные методы (а там тот же цикл) всегда быстрее скриптовых, во всяком случае AsBroadcaster в AS2 выигрывает у цикла в таких случая в разы, здесь не проверял..


Последний раз редактировалось silin; 10.08.2007 в 12:29.
Старый 10.08.2007, 14:25
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 29  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Вооот!
silin, большое спасибо, это именно то!
__________________
freelance | Раздор

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

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

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


 


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


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