好的,我读过很多关于此的帖子,但我找不到足够好的答案。 所以我在构造函数类中有这个:
this.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
this.addEventListener(MouseEvent.MOUSE_UP, mouseup)
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, showInfo);
我有这三个功能:
private function mouseup(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseup);
myTimer.reset();
}
private function showInfo(event:MouseEvent):void{
//long press code
}
private function mousedown(event:MouseEvent):void{
myTimer.start();
}
在通常的点击它做它应该做的事情,但是当谈到长按(1.5秒)它回应了这个错误:
TypeError: Error #1034: Type Coercion failed: cannot convert flash.events::TimerEvent@2ff0bab1 to flash.events.MouseEvent.
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.utils::Timer/tick()
另一件事......在正常点击时,应该有一个动作并且长按另一个动作。 我的代码在长按时执行这两个操作。关于如何让它在长按时没有运行第一个动作的任何建议? 谢谢。
答案 0 :(得分:1)
事件类型应为TimerEvent,而不是MouseEvent
private function showInfo(event:TimerEvent):void{
//long press code
}