Algo de AS3.

Posted in: ActionScript, AS3- jun 30, 2006 8 Comments

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://tmeister.net/events.swf,350,250[/FLASH]

Aqui esta el ZIP con el FLA

Después publico mas cosillas….

  • http://leandrodonofrio.com.ar leandono

    Muy buen ejemplo para ir metiendose en AS 3.0, gracias ^^

  • darkxer0x

    Vamos, igual que java.

  • Pingback: » Más enlaces sobre AS3, Flash 9, Flex 2..

  • Pingback: DarkRasseL Weblog » Archivo del weblog » AS3.0 y algunos tutoriales muy interesantes

  • GisKaRD

    Menuda mierda de as3.0 para hacer una cosa tan sencilla antes necesitavamos escribir 4 lineas y ahora necesitamos 40.000 y es menos intuitivo que antes, el as3.0 hay que quemarlo

  • Gil Cesena

    Hola!

    Muy buena aportacion espero que sigas asi de bien, gracias!!

  • http://dsd yeah

    Buen ejemplo, pero AS3 a la hogeraaaaaaaaaaaaaaaaaaaa !!!!!

  • http://www.peekinteractive.com Marcos

    AS3 es excelente! Mucho mas si trabajas con un buen framework de base como es pureMVC (que aun estoy aprendiendo pero ya me salvo muchas horas de trabajo). Además AS3 es mucho mas claro y ordenado en todos los aspectos.
    Aclaro que soy diseñador y no me costo mucho pasar a esta nueva versión y no volvería a AS2 a menos que sea una necesidad puntual del trabajo (pero usaría igual el lenguaje estricto que aprendí a respetar gracias a AS3, algo que finalmente ayudo a optimizar mi trabajo).