Показать сообщение отдельно
Старый 19.06.2013, 16:34
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 4  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
AlexLucas и Akopalipsis, мне кажется вы друг друга не поняли...

to Akopalipsis: Конструкторы использовать нужно и полезно, при условии что применять их грамотно. Ваш пример не работает потому что вы диспатчите событие CHANGE в конструкторе, т.е. до того как повесится слушатель _a.addEventListener( Event.CHANGE ,aChangeHandler ), поэтому метод aChangeHandler и не срабатывает

Попробуйте так:
Код AS3:
package  
{
 
	import flash.display.Sprite ;
	import flash.events.Event ;
 
 
	public class Main extends Sprite 
	{
		private var _a : A ;
 
		public function Main() 
		{
			_a = new A( "a" ) ;
			_a.addEventListener( Event.CHANGE ,aChangeHandler ) ;
			_a.changeStr();
		}
		private function aChangeHandler( e : Event ) : void
		{
			trace( e.type ,_a.str) ;
		}
	}
 
}
Код AS3:
package  
{
	import flash.events.EventDispatcher;
	import flash.events.Event;
 
	public class A extends EventDispatcher
	{
		private var _str : String ;
 
		public function A( str : String ) 
		{
			_str = str ;
		}
 
		public function changeStr():void
		{
			_str += "b" ;
			dispatchEvent( new Event( Event.CHANGE ) ) ;	
		}
 
		public function get str() : String
		{
			return _str ;
		}
 
	}
 
}
__________________
FlashPress.ru | Blog