2010-06-20 6 views

Répondre

0

Vous pouvez ajouter un écouteur à la scène pour capturer tous les clics:

package 
{ 

import flash.display.Sprite; 
import flash.events.Event; 
import flash.events.MouseEvent; 

[SWF(width='500', height='300', backgroundColor='#ffffff', frameRate='30')] 
public class ClickTest extends Sprite 
{ 
    public function ClickTest() 
    { 
     addEventListener(Event.ADDED_TO_STAGE, addedToStage); 
    } 

    private function addedToStage(event:Event):void 
    { 
     stage.addEventListener(MouseEvent.CLICK, handleClick); 
    } 

    private function handleClick(event:MouseEvent):void 
    { 
     if((stage.mouseX < 300) && (stage.mouseY < 200) 
     { 
      trace("CLICKED WHERE I WANT"); 
     } 
    } 
} 

} 

Cela semble fonctionner même lorsque les sprites sont placés au-dessus de l'interface.

1

De nombreux objets distribuez un événement clic; et dans ces propriétés d'événement de clic, vous pouvez accéder aux positions x et y en utilisant les propriétés stageX et stageY.

http://livedocs.adobe.com/flex/3/langref/flash/events/MouseEvent.html

Cependant, je ne pense pas qu'il est possible d'écouter un événement de clic à un endroit précis sans leur être un élément UI à cet endroit.

Je me demande également si le codage en dur de la position x et y pour un tel changement d'état est une bonne idée; car des machines différentes et des résolutions et tailles d'écran différentes peuvent adapter votre contenu différemment.