Показать сообщение отдельно
Старый 13.07.2009, 15:14
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 8  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
SunShadow, спасибо!
Решили с коллегой этот вопрос. Оказуется кастом ивенту нужно обязательно создать функцию clone ибо событие приходит в виде клона кастома ивента. Соответственно, клон должен помнить параметры нашего ивента.
Вот рабочий класс кастом ивента:
Код AS3:
package
{
    import flash.events.Event;
 
	public class SmartLoaderEvent extends Event
	{
        public static const PROGRESS_UPDATE:String = "progress_update";
        public var current:Number;
		public var total:Number;
 
 
		public function SmartLoaderEvent(type:String, current_value = NaN, total_value = NaN, bubbles:Boolean=false, cancelable:Boolean=false) 
		{
             super(type, bubbles, cancelable);
			current = current_value;
			total = total_value;
		} 
 
		public override function clone():Event 
		{ 
			return new SmartLoaderEvent(type, current, total, bubbles, cancelable);
		} 
 
		public override function toString():String 
		{ 
			return formatToString("SmartLoaderEvent", "type", "bubbles", "cancelable", "eventPhase"); 
		}
 
		}
          }
}
листенер выглядит так:
Код AS3:
my_loader.addEventListener(SmartLoaderEvent.PROGRESS_UPDATE, progress_test_funct);
обработчик
Код AS3:
private function progress_test_funct(event:SmartLoaderEvent)
{
	trace("ПАРАМЕТРЫ" ,event.total, event.current);
}
Тема исчерпана.