Follow me @Tmeister

Simple onReleaseOutSide en AS3

ESCRITO POR Tmeister EN 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)

3 Responses to “Simple onReleaseOutSide en AS3”

  1. zguillez says:

    Bueno código ;)
    Hace un tiempo vi una clase de André Michelle para hacer lo mismo, y además añadía eventos onDragOut, onDragOver: http://www.codigo.as/blog/?p=78

  2. Rafeo says:

    Hace un poco también me andaba quebrando el coco tratando de implementar el mentado onReleaseOutside. Muy muy útil :D .

  3. Rafeo says:

    Oye, por cierto… mi blog hace rato nomás no :( .

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