2009-04-02 5 views

答えて

0

ロケーションはどのようなコンテキストで定義されていますか?全ページ? 1つ以上の特定のクリック可能なコントロール?

0

いつでも任意のDisplayObjectのmou​​seXとmouseYを照会することができます。

3

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. 
} 
+1

感謝を!私はあなたの答えに同意し、混乱を減らすために私のものを取り除いた。 実際のAS3コードでインラインハンドラを使用することは決してありませんが、単純な例を挙げる場合に限ります。私は実際に練習する説教を実践すべきです。 :) –

+0

また、マウスのリスナー機能の外でマウスの位置を取得するには、stage.mouseX&stage.mouseY **を使用します – Moorthy

1

次彼らはそれをうまく説明が、ここではあなたのための少しより多くのことを説明するための完全なコードです:大漁、ブライアンのための

 
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; 
} 
関連する問題