Bien aquí vengo con ejemplo de AS3.
Lo primero que salta a la vista es que, ahora a las instancias de MovieClip y Botones no se les podrá agregar acciones mediante onRelease, onRollOver, onPress etc etc estos métodos dejaron de existir.
Ahora todo sera mediante eventos, así es del tipo addEventListener.un ejemplo simple para detectar un click del mouse sobre un MovieClip
[as]
import flash.display.Sprite;
var child:Sprite = new Sprite();
child.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
trace(event)
}
[/as]
No se ve tan complicado cierto. Repito ahora todo sera mediante eventos.
En AS3 existen varios eventos nuevos el que mas me llamo la atención hasta ahora(no he visto todos) es el evento mouseLeave, ¿que hace esto? Este evento se dispara cuando el cursor deja el área del SWF en cuestión.
En el desarrollo de la Versión 3 de computadora.de el detectar que el mouse saliera del entorno del SWF nos dio dolores de cabeza (bueno al tachas.)
, la solución en ese momento fue crear un margen de 5 pixeles alrededor del SWF y estar monitoreando el _xmouse y el _ymouse en fin, con este evento se facilita la vida.
Aquí les dejo ejemplo sencillo de eventos del mouse sobre un MovieClip y la detección de cuando el mouse deja el área del SWF.
[as]
import flash.display.Sprite;
import flash.events.MouseEvent
import flash.utils.trace;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
var size:uint = 50;
var bgColor:uint = 0x000C00;
var box:Sprite;
var child:Sprite = new Sprite();
var isDraging:Boolean
function init(){
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
child.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
child.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler);
draw(child);
box = Sprite(addChild(child));
box.x = (stage.stageWidth-box.width)/2
box.y = (stage.stageHeight-box.height)/2
}
function mouseLeaveHandler(event:Event):void{
if(isDraging){
box.stopDrag()
isDraging = false
box.x = (stage.stageWidth-box.width)/2
box.y = (stage.stageHeight-box.height)/2
outPut.text = “Saliste del SWF…”
}
}
function mouseDownHandler(event:MouseEvent):void {
var sprite:Sprite = Sprite(event.target);
isDraging = true;
sprite.startDrag()
outPut.text = “”
}
function mouseUpHandler(event:MouseEvent):void {
var sprite:Sprite = Sprite(event.target);
isDraging = false;
sprite.stopDrag()
}
function draw(sprite:Sprite):void {
sprite.graphics.beginFill(bgColor);
sprite.graphics.drawRect(0, 0, size, size);
sprite.graphics.endFill();
}
init()
[/as]
Arrastra el cuadro fuera del Stage y suelta el mouse
No olvides que necesitas el flashPlayer 9 para la correcta visualizacion
[FLASH]http://klr20mg.com/events.swf,350,250[/FLASH]
Aqui esta el ZIP con el FLA
Después publico mas cosillas….