Это НЕ дубликат моего предыдущего поста (немного отличается)
Но это аналогичная проблема с похожей ошибкой, но это не та же ошибка
Ошибка, которую я получаю сейчас, приведена ниже при отправке пользовательского события из моего пользовательского компонента
Ошибка типа: ошибка # 1034: сбой приведения типа: невозможно преобразовать события :: MapEvent @ a74ab51 вflash.events.MouseEvent.
dispatchEvent(new MapEvent(MapEvent.CLICKED_ON_MAP));
Примечание. Ошибка в моем предыдущем сообщении приводит к сообщению об ошибке ниже
Ошибка приведения типа:невозможно преобразовать flash.events::Event@81ecb79 в com.events.ShopEvent
Разница здесь в двух вещах: более ранняя ошибка - при преобразовании события flash в пользовательское событие, а теперь - при преобразованиипользовательское событие, чтобы мигнуть событие, и, во-вторых, я понятия не имею, почему он пытается конвертировать в mouseevent, где я просто отправляю свое пользовательское событие с соответствующими слушателями.
Может кто-нибудь исправить меня, чтоЯ делаю неправильно здесь.
Это мое обычное событие
package events
{
import flash.events.Event;
import ui.map.MapElement;
public class MapEvent extends Event
{
public static const NEW_ELEMENT_ATTACHED:String = "newElementAttached";
public static const CLICKED_ON_MAP:String = "clickedOnMap";
public static const CLICKED_ON_ELEMENT:String = "clickedOnElement";
public var element:MapElement;
public function MapEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
}
override public function clone():Event{
var c:MapEvent = new MapEvent(type, bubbles, cancelable);
c.element = this.element;
return c;
}
}
}
Это то, как я отправляю событие из моего пользовательского компонента (файл класса WorldMap.as)
private function clickHandler(e:MouseEvent):void{
e.stopImmediatePropagation();
trace("worldmap click handler");
if (dragInProgress){
/*trace ("stopping event propagation");*/
dragInProgress = false;
return;
}else{
trace("dispatching proxy click event");
dispatchEvent(new MapEvent(MapEvent.CLICKED_ON_MAP));
}
}
Я также объявил метатег [Event]
[Event(name="newElementAttached", type="events.MapEvent")]
[Event(name="clickedOnMap", type="events.MapEvent")]
[Event(name="clickedOnElement", type="events.MapEvent")]
Наконец, слушатель подключен к другому компоненту (controller.as)
_userWorld.addEventListener(MapEvent.CLICKED_ON_MAP,clickedOnWorldMap);
_userWorld.addEventListener(MapEvent.CLICKED_ON_ELEMENT,clickedOnElement);
private function clickedOnWorldMap(e:MouseEvent):void{
_draggingMapElement.hideBaseGrid();
_draggingMapElement = null;
}
private function clickedOnElement(e:MapEvent):void{
}