MouseEvent.relatedObject evento utile ma poco utilizzato

AS3, Flash, Flex oscar Commenta l'articolo

MouseEvent.relatedObject è un evento comodo in casi in cui è utile sapere quale oggetto aveva in possesso un evento MouseEvent. Per esempio catturiamo un mouseOver in un pannello in cui ci sono due bottoni. Quando passiamo col mouse su un bottone potremmo conoscere se siamo prima passati sull’altro bottone oppure se non ci siamo passati, arrivandoci cioè direttamente passando solo sul pannello.

Per chiarire meglio l’esempio prova il codice seguente:

package {
 
   import flash.display.Sprite;
   import flash.events.MouseEvent;
 
   public class HelloWorld extends Sprite {
 
      private var panel:Sprite;
      private var button1:Sprite;
      private var button2:Sprite;
 
      public function HelloWorld() {
 
         panel = new Sprite();
         panel.graphics.beginFill(0x777777, 1);
         panel.graphics.drawRect(0,0,200, 150);
         panel.graphics.endFill();
         panel.x = 50;
         panel.y = 50;
 
         button1 = createButton(0xff0000, 100, 100);
         button2 = createButton(0x0000ff, 100, 120);
 
         panel.name      = "Panel";
         button1.name   = "Button 1";
         button2.name   = "Button 2";
 
         addChild(panel);
         addChild(button1);
         addChild(button2);
 
         addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
      }
 
      private function onMouseOver(event:MouseEvent):void {
         trace(
            "Mouse now over: " + event.target.name +
            ". Used to be over: " + (event.relatedObject != null ? event.relatedObject.name : "n/a")
         );
      }
 
      private function createButton(color:uint, x:int, y:int):Sprite {
 
         var result:Sprite = new Sprite();
 
         result.graphics.beginFill(color, 1);
         result.graphics.drawRect(0,0,100,20);
         result.graphics.endFill();
 
         result.x = x;
         result.y = y;
 
         return result;
      }
   }
}

Scrivi un Commento

Home | Graffiti e Disegni | Educazione | Chi siamo | Blog | Progetti | Contatti
RSS Feed Comments RSS Accedi