wvxvw
13.12.2009, 17:32
Вобщем, обнаружил одну неприятную фишку - если событие один раз диспатчится и обрабатывается, то его по второму разу уже никак не использовать - слушатель просто не вызовется...
Вопрос - а какой в этом смысл? Если мне хватит одного события для всего, что мне нужно, зачем создавать их пачками? Я не к тому... может это зачем-то и нужно, например, для встроенных событий - но для пользовательских - зачем же... :mad:
Т.е. чтобы уточнить:
package org.wvxvws.gui.repeaters
{
import flash.events.Event;
/**
* RepeaterEvent event.
* @author wvxvw
*/
public class RepeaterEvent extends Event
{
public static const REPEAT:String = "repeat";
public function get index():int { return _repeater.index; }
public function get currentItem():Object { return _repeater.currentItem; }
private var _repeater:IRepeater;
public function RepeaterEvent(type:String, repeater:IRepeater)
{
super(type);
_repeater = repeater;
}
public override function clone():Event { return this; }
public override function toString():String
{
return formatToString("RepeaterEvent", "type", "index", "currentItem");
}
}
}
Как можно понять, событие все рано не имеет никаких "личных" свойств, и клонировать мне его совсем не надо, но, очевидно, что после одного использования этого события оно становится больше не пригодным...
UPD: http://bugs.adobe.com/jira/browse/FP-3456
Вопрос - а какой в этом смысл? Если мне хватит одного события для всего, что мне нужно, зачем создавать их пачками? Я не к тому... может это зачем-то и нужно, например, для встроенных событий - но для пользовательских - зачем же... :mad:
Т.е. чтобы уточнить:
package org.wvxvws.gui.repeaters
{
import flash.events.Event;
/**
* RepeaterEvent event.
* @author wvxvw
*/
public class RepeaterEvent extends Event
{
public static const REPEAT:String = "repeat";
public function get index():int { return _repeater.index; }
public function get currentItem():Object { return _repeater.currentItem; }
private var _repeater:IRepeater;
public function RepeaterEvent(type:String, repeater:IRepeater)
{
super(type);
_repeater = repeater;
}
public override function clone():Event { return this; }
public override function toString():String
{
return formatToString("RepeaterEvent", "type", "index", "currentItem");
}
}
}
Как можно понять, событие все рано не имеет никаких "личных" свойств, и клонировать мне его совсем не надо, но, очевидно, что после одного использования этого события оно становится больше не пригодным...
UPD: http://bugs.adobe.com/jira/browse/FP-3456