Follow me @Tmeister

Archive for October, 2007

Simple onReleaseOutSide en AS3

Posted by Tmeister On October - 8 - 2007

Una de las tantas cosas que se extrañan de ActionScript 2 son algunos eventos del mouse que son, sin duda, bastante útiles a la hora de trabajar en nuestros proyectos.

El evento que más se extraña es onReleaseOutside, este evento lo uso tanto como los demás así que había que hacer algo al respecto.

Escribí una pequeña clase que detecta dicho evento y lanza el dispatch.

Aquí está la clase.

[as]
package com.tmeister.utils
{
import flash.display.InteractiveObject;
import flash.events.MouseEvent;
import flash.events.Event;

public class MouseEvents
{
static public const RELEASE_OUTSIDE = “onReleaseOutside”
private var target:InteractiveObject;
function MouseEvents(obj:InteractiveObject)
{
target = obj;
createChildrens();
}
private function createChildrens():void
{
target.addEventListener(MouseEvent.MOUSE_DOWN, onPress);
}
private function onPress(event:MouseEvent):void
{
target.addEventListener(MouseEvent.ROLL_OUT, onRollOut);
}
private function onRollOut(event:MouseEvent):void
{
if(event.buttonDown)
{
target.stage.addEventListener(MouseEvent.MOUSE_UP, onReleaseOutSide);
}
target.removeEventListener(MouseEvent.ROLL_OUT, onRollOut);
}
private function onReleaseOutSide(event:MouseEvent):void
{
if( event.target == target )return
var nEvent:Event = new Event(RELEASE_OUTSIDE);
target.dispatchEvent(nEvent);
target.stage.removeEventListener(MouseEvent.MOUSE_UP, onReleaseOutSide);

}
}
}
[/as]

El modo de uso.

[as]
import com.tmeister.utils.MouseEvents;
var boxes:Array = [box0, box1, box2, box3];

for each (var box in boxes)
{
var oros:MouseEvents = new MouseEvents(box);
box.addEventListener(MouseEvents.RELEASE_OUTSIDE, releaseOut);
box.addEventListener(MouseEvent.CLICK, click);
}
function releaseOut(evt:Event)
{
out_txt.appendText(“\nRELEASE OUTSIDE “+evt.target.name);
}
function click(evt:MouseEvent)
{
out_txt.text = “Click Normal “+evt.target.name;
}
[/as]

Y este el ejemplo final.

[FLASH]http://klr20mg.com/as3/oros.swf,300,250[/FLASH]

Saludos!! 8)

Acerca de mi
Enrique Chavez

Enrique Chávez también es conocido como @Tmeister es un desarrollador, emprendedor, poeta y loco.

Geek autodeclarado y apasionado de todo lo que tiene que ver con tecnología y desarrollo.

Cuenta con una experiencia de más de 7 años en el ramo del desarrollo, creando, sobre todo, aplicaciones web en la empresa Sapotek.

A finales del 2008 crea, junto con 3 colegas, la consultoría llamada AureaCode, enfocándose a brindar servicios de desarrollo web en todas sus variantes.

Si necesitas algún tipo de información o consulta por favor no dude en escribir.

View Enrique Chávez's profile on LinkedIn

Carlos Enrique Chavez Garcia's VisualCV

RSS Feed

Links Patrocinados