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

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

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

Регистрация: Oct 2011
Сообщений: 18
Я так понимаю если в Main написать:
Код AS3:
ExportWindow.addEventListener(ExportWindowEvent.BUTTON_CLICK, function);
ExportWindow.button.addEventListener(MouseEvent.CLICK, function);
Будет одно и тоже, только разная реализация?

Старый 19.04.2012, 18:00
RJ Presto вне форума Посмотреть профиль Отправить личное сообщение для RJ Presto Найти все сообщения от RJ Presto
  № 12  
Ответить с цитированием
RJ Presto

Регистрация: Nov 2007
Сообщений: 55
первый вариант правильнее, так как вы не завязываетесь на внутреннюю структуру ExportWindow.
если завтра вам надо будет это событие отправлять по нажатию на другую кнопку - вы только добавите dispatchEvent в еще одно место, а не кучу подписчиков еще и на вторую кнопку.

Старый 19.04.2012, 23:39
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 13  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Первый вариант гибше гораздо.
Приходилось наблюдать в проекте, как народ лезет во внутренности окошек - в коде очень тяжело было разобраться и вдвойне тяжело вносить правки. И после объяснения "почему так делать не надо" и рефакторинга всё стало гораздо лучше.
Но, как всегда, каждый проект уникален и, возможно, Вы не огребёте. А может даже и лучше будет.


Последний раз редактировалось expl; 19.04.2012 в 23:42.
Старый 20.04.2012, 02:29
Milyh вне форума Посмотреть профиль Отправить личное сообщение для Milyh Найти все сообщения от Milyh
  № 14  
Ответить с цитированием
Milyh

Регистрация: Oct 2011
Сообщений: 18
Ошибку даёт: неизвестный параметр ExportWindowEvent

Старый 20.04.2012, 11:13
RJ Presto вне форума Посмотреть профиль Отправить личное сообщение для RJ Presto Найти все сообщения от RJ Presto
  № 15  
Ответить с цитированием
RJ Presto

Регистрация: Nov 2007
Сообщений: 55
вы должны создать новый класс для своего события, отнаследовав его от Event

Код:
package events
{
	import flash.events.Event;
	
	public class ExportWindowEvent extends Event
	{
		public static const BUTTON_CLICK:String = 'buttonClick';
		
		public function ExportWindowEvent(type:String)
		{
			super(type, true);
		}
	}
}
затем в ExportWindow после определенного действия вы вставляете вызов

Код:
dispatchEvent(
    new ExportWindowEvent(
        ExportWindowEvent.BUTTON_CLICK
    )
);

Старый 20.04.2012, 21:55
Milyh вне форума Посмотреть профиль Отправить личное сообщение для Milyh Найти все сообщения от Milyh
  № 16  
Ответить с цитированием
Milyh

Регистрация: Oct 2011
Сообщений: 18
Спасибо, разобразся

Старый 21.04.2012, 22:18
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 17  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Сообщение от RJ Presto Посмотреть сообщение
вы должны создать новый класс для своего события, отнаследовав его от Event

Код:
package events
{
	import flash.events.Event;
	
	public class ExportWindowEvent extends Event
	{
		public static const BUTTON_CLICK:String = 'buttonClick';
		
		public function ExportWindowEvent(type:String)
		{
			super(type, true);
		}
	}
}
Если не переопределить метод clone, то при баблинге или повторном распространении событие внезапно превратится в тип Event, а не ExportWindowEvent (и свалится там, где вы ожидали ExportWindowEvent). Лучше так:
Код AS3:
package events
{
	import flash.events.Event;
 
	public class ExportWindowEvent extends Event
	{
		public static const BUTTON_CLICK:String = 'buttonClick';
 
		public function ExportWindowEvent(type:String)
		{
			super(type, true);
		}
 
                override public function clone():Event
                {
                        return new ExportWindowEvent(type);
                }
	}
}

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

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

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


 


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


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