按,长按

时间:2014-09-16 01:28:46

标签: actionscript-3

好的,我读过很多关于此的帖子,但我找不到足够好的答案。 所以我在构造函数类中有这个:

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()

另一件事......在正常点击时,应该有一个动作并且长按另一个动作。 我的代码在长按时执行这两个操作。关于如何让它在长按时没有运行第一个动作的任何建议? 谢谢。

1 个答案:

答案 0 :(得分:1)

事件类型应为TimerEvent,而不是MouseEvent

private function showInfo(event:TimerEvent):void{
    //long press code
}