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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.09.2009, 22:06
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 1  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
По умолчанию Event повторно шлется c боками.

Че это за бок с самодельными событиями?
Код AS3:
package lex{
 
	import flash.events.Event;
 
	public class LexEvent extends Event {
 
		public static const FINISH:String = "finish";
 
		public var params:Object;
 
		public function LexEvent(_type:String, _params:Object) {
			super( _type)
			this.params = _params;
		}
 
		public override function toString():String {
			return formatToString("CustomEvent", "params", "type", "bubbles", "cancelable");
		}
	}
}
вот так работает
Код AS3:
package  
{
	import flash.display.*;
	import flash.events.*;
	import lex.LexEvent; 
	import flash.utils.*;
	import flash.system.*;
 
	public class Bugs extends MovieClip
	{
		private var fixEvt:LexEvent;
		private var finCount:uint;
		public function Bugs() 
		{
			fixEvt = new LexEvent(LexEvent.FINISH, { obj:this });
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
			addEventListener(LexEvent.FINISH, finishHandler);
		}
 
		private function finishHandler(evt:Object):void {
			trace(getQualifiedClassName(evt));
		}
 
		private function enterFrameHandler(evt:Event):void {
			fixEvt = new LexEvent(LexEvent.FINISH, { obj:this });
			dispatchEvent(fixEvt);
		}
 
	}
 
}
показывает в трасе
Код:
lex::LexEvent
lex::LexEvent
lex::LexEvent
а теперь не будем каждый раз создавать LexEvent, а хочется брать уже готовый
Код AS3:
package  
{
	import flash.display.*;
	import flash.events.*;
	import lex.LexEvent; 
	import flash.utils.*;
	import flash.system.*;
 
	public class Bugs extends MovieClip
	{
		private var fixEvt:LexEvent;
		private var finCount:uint;
		public function Bugs() 
		{
			fixEvt = new LexEvent(LexEvent.FINISH, { obj:this });
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
			addEventListener(LexEvent.FINISH, finishHandler);
		}
 
		private function finishHandler(evt:Object):void {
			trace(getQualifiedClassName(evt));
		}
 
		private function enterFrameHandler(evt:Event):void {
			dispatchEvent(fixEvt);
		}
 
	}
 
}
Побежали уже не ЛехЕвенты, а просто Евенты

Код:
flash.events::Event
flash.events::Event
flash.events::Event
И вот я думаю, а должно ли так быть?

Старый 08.09.2009, 22:24
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 2  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Код AS3:
		override public function clone():Event
		{
			return new CustEvent(type,bubbles,cancelable);
		}

Старый 08.09.2009, 22:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Нужно оверрайдить clone()

PS. не успел
__________________
Hell is the possibility of sanity

Старый 08.09.2009, 23:46
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Спасибо, теперь буду знать зачем нужно clone()

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

Регистрация: Sep 2002
Сообщений: 30,787
clone вообще всегда нужно описывать.

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

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

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


 


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


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