2009-04-02 15 views

Antwort

0

Standort definiert durch welchen Kontext? Die ganze Seite? Eine oder mehrere spezifische anklickbare Steuerelemente?

0

Sie können beliebige mouseX und mouseY von DisplayObject abfragen, wann immer Sie möchten.

3

Ron DeVera ist in der Nähe, aber ich würde keine Inline-Funktion verwenden, und das Objekt, das an die Funktion übergeben wird, ist nicht Event, sondern 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] 

Alle Eigenschaften der Ausgabe sind oben durch das Objekt zur Verfügung, die an die Ereignis-Listener-Methode, _onStageMouseDown (e: Mouseevent) übergeben wird; Daraus ergibt sich die folgende

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

Danke für die guten Fang, Brian! Ich stimme deiner Antwort zu und habe meine entfernt, um Unordnung zu vermeiden. Um ehrlich zu sein, verwende ich auch nie Inline-Handler in meinem eigenen realen AS3-Code, aber nur, wenn ich einfache Beispiele gebe. Ich sollte wirklich üben, was ich übe. :) –

+0

Sie können auch Mausposition außerhalb der Maus Listener Funktionen mit ** stage.mouseX & stage.mouseY ** erhalten – Moorthy

1

Sie erklärten es gut, aber hier ist der vollständige Code zu illustrieren, ein wenig mehr für Sie:

 
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; 
}