Я создал собственный класс четности, который довольно прост. Но при вызове события и последующей передаче этого события другому классу я обнаружил ошибку «невозможно преобразовать thisEvent в thisOtherEvent».
Я понимаю, что это потому, что мне нужно было переопределить функцию Clone в моем настраиваемом событии следующим образом:
package com
{
import flash.disply.*;
import flash.events.Event;
public class MyCustomEvents extends Event
{
public static const SOME_EVENT:String = "some_event";
public var info:Object;
public function MyCustomEvents($type:String, $info:Object,$bubbles:Boolean = false, $cancelable:Boolean = false)
{
super($type, $bubbles, $cancelable);
this.info = $info;
}
public override function clone():Event {
return new MyCustomEvents($type, $bubbles, $cancelable);
}
}
}
Однако я все еще получаю эту ошибку, когда отправляю событие. Что-нибудь еще, что я мог бы пропустить?
вот ошибка:
TypeError: Error #1034: Type Coercion failed: cannot convert com.greensock.events::TransformEvent@d8df709 to com.customEvents.MyCustomEvents.
Я пытался привести событие в коде так:
var deleteImgEvent:MyCustomEvent = new MyCustomEvent(MyCustomEvents.IMAGE_DELETE, {imgData: getImg}, true, false); this.dispatchEvent(deleteImgEvent as MyCustomEvents);
Все еще не повезло.
UPDATE:
Хорошо, похоже, проблема в библиотеке преобразования greensock. Когда вызывается обработчик события для моего пользовательского события, я запускаю функцию класса TransformManager.
_manager.deleteSelection();
Внутри этого класса он отправил TransformEvent. Не знаю почему, но он читает событие удаления как MyCustomEvent.