Robotlegs - вторая отправка не работает с addViewListener
У меня есть посредник, созданный в Robotlegs, и его связанный вид будет отправлять два разных типа событий. Когда посредник фиксирует событие, он просто отправляет событие. Проблема, с которой я столкнулся, заключалась в том, что первое событие было повторно отправлено безупречно, но второе событие не было отправлено.
Однако если я вручную назначу другой обработчик второму событию, событие будет правильно записано.
Ниже приведен соответствующий код:
public class MyMediator extends Mediator
{
[Inject]
public var view:MyView;
public override function onRegister():void
{
super.onRegister();
addViewListener( SomeEventTypeA.COOL_EVENT, dispatch, SomeEventTypeA ); // This event is dispatched correctly
addViewListener( SomeEventTypeB.STUCK, dispatch, SomeEventTypeB ); // This one is not correctly dispatched
//A twist, if I uncomment the following code, the event is captured by its handler
//addViewListener( SomeEventTypeB.STUCK, view_stuck, SomeEventTypeB );
}
private function view_stuck( event:SomeEventTypeB ):void
{
//ah ha, this is called correctly if the above relevant line is uncommented
}
}
1 ответ
Решение
Нашел причину:
Событие должно иметь правильный метод клонирования для правильной повторной отправки. Смотрите связанную ссылку: