Dic 01
La classe InteractiveObject in ActionScript 3 ha entrambi la coppia di eventi rollOver e rollOut, mouseOver emouseOut.
Entrambi determinano quando il mouse entra ed esce dall’oggetto. L’evento Over (roll e mouse) quando il mouse entra nell’oggetto e viceversa l’evento out viene lanciato quando il mouse esce dall’oggetto.
Loro differiscono sull’interazione con gli oggetti figli. L’evento roll (over e out) semplicemente evita l’interazione con gli eventi dei figli. Essenzialmente è la stessa cosa usando gli eventi Mouse (over e out) con la proprietà “mouseEnabled = false”.
Vediamo l’esempio:
// main button var spriteButton:Sprite = new Sprite(); spriteButton.name = "spriteButton"; // graphics var spriteGraphics1:Sprite = createGraphics("spriteGraphics1", 0xFF, 50, 50, 25); var spriteGraphics2:Sprite = createGraphics("spriteGraphics2", 0x80, 50, 50, 15); // add to display list spriteButton.addChild(spriteGraphics1); spriteButton.addChild(spriteGraphics2); addChild(spriteButton); // events spriteButton.addEventListener(MouseEvent.ROLL_OVER, over); spriteButton.addEventListener(MouseEvent.ROLL_OUT, out); //~spriteButton.addEventListener(MouseEvent.MOUSE_OVER, over); //~spriteButton.addEventListener(MouseEvent.MOUSE_OUT, out); function over(evt:MouseEvent):void { trace("over: " + evt.target.name); } function out(evt:MouseEvent):void { trace("out: " + evt.target.name); } // create circles function createGraphics(name:String, color:uint, x:Number, y:Number, radius:Number):Sprite { var circle:Sprite = new Sprite(); circle.name = name; circle.graphics.beginFill(color); circle.graphics.drawCircle(x, y, radius); return circle; }
Noterai che con roll, spriteButton è il target e non riceve eventi dai figli.
Con gli eventi roll si avrai:
over: spriteButton out: spriteButton
Con gli eventi mouse avrai:
over: spriteGraphics1 out: spriteGraphics1 over: spriteGraphics2 out: spriteGraphics2 over: spriteGraphics1 out: spriteGraphics1
Ultimi Commenti