English 中文(简体)
如何在ActionScript 3.0中捕获鼠标点击事件。
原标题:
  • 时间:2009-04-02 17:37:55
  •  标签:

我该如何使用Actionscript 3.0在我的Flash窗口中捕获用户的鼠标单击位置?

问题回答

Ron DeVera很接近,但我不会使用内联函数,传递给函数的对象也不是Event,而是MouseEvent。

stage.addEventListener(MouseEvent.CLICK, _onStageMouseDown);

function _onStageMouseDown(e:MouseEvent):void
{
    trace(e);
}

//traces
//[MouseEvent type="click" bubbles=true cancelable=false eventPhase=2 localX=96 localY=96 stageX=96 stageY=96 relatedObject=null ctrlKey=false altKey=false shiftKey=false buttonDown=false delta=0]

以上输出中的所有属性都可通过传递给事件侦听器方法_onStageMouseDown(e:MouseEvent)的对象进行访问。 因此,以下是

function _onStageMouseDown(e:MouseEvent):void
{
    trace(e.localX);
    trace(e.stageX);
    //Note that the above two traces are identical as we are listening to the stage for our MouseEvent.
}

他们解释得很好,但这里是完整的代码,为了让您更好地理解:

addEventListener(MouseEvent.CLICK, clickHandler);

function clickHandler(event: MouseEvent) : void
{
    // these are the x and y relative to the object
    var localMouseX: Number = event.localX;
    var localMouseY: Number = event.localY;

    // these are the x and y relative to the whole stage
    var stageMouseX: Number = event.stageX;
    var stageMouseY: Number = event.stageY;
}

位置是由什么上下文来定义的?整个页面吗?一个或多个特定的可点击控件?

你可以随时查询任何 DisplayObject 的 mouseX 和 mouseY。





相关问题
热门标签