昨天听群里的朋友在讨论AS3 onReleaseOutside的问题,就写了一个.
听Sephiroth说,他也写过一个,改天问他拿来看看...(广告,Sephiroth是Flash 3D编程高手)^v^
回到正题,AS3里onReleaseOutside事件移除了,AS3帮助的对照表中,代替它的是MOUSE_UP.
但单单用MOUSE_UP去侦听是不行的~要配合MOUSE_DOWN使用才行.
以下是我写的ExtMouseEvent类:
package cn.snowkit.events
{
import flash.events.MouseEvent;
public class ExtMouseEvent
{
private var btn:*;
private var _down:Boolean;
private var fun:Function;
public static const RELEASE_OUTSIDE:String = "releaseOutside";
public function ExtMouseEvent()
{
_down = false;
}
private function downFun(evt:MouseEvent):void
{
_down = true;
}
private function upFun(evt:MouseEvent):void
{
if(_down)
{
if(evt.target != btn)
{
fun(evt);
}
}
_down = false;
}
public function addEventListener(e:String,f:Function,target:*,s:*):void
{
if(e == RELEASE_OUTSIDE)
{
btn = target;
fun = f;
target.addEventListener(MouseEvent.MOUSE_DOWN,downFun);
s.addEventListener(MouseEvent.MOUSE_UP,upFun);
}
}
}
}
使用方法:
var event:ExtMouseEvent = new ExtMouseEvent();
event.addEventListener(ExtMouseEvent.RELEASE_OUTSIDE,handel_function,button_Instance,stage);
封装得不好,见笑了,大家有更好的方法,希望能指教一下~
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1910.html
听Sephiroth说,他也写过一个,改天问他拿来看看...(广告,Sephiroth是Flash 3D编程高手)^v^
回到正题,AS3里onReleaseOutside事件移除了,AS3帮助的对照表中,代替它的是MOUSE_UP.
但单单用MOUSE_UP去侦听是不行的~要配合MOUSE_DOWN使用才行.
以下是我写的ExtMouseEvent类:
package cn.snowkit.events
{
import flash.events.MouseEvent;
public class ExtMouseEvent
{
private var btn:*;
private var _down:Boolean;
private var fun:Function;
public static const RELEASE_OUTSIDE:String = "releaseOutside";
public function ExtMouseEvent()
{
_down = false;
}
private function downFun(evt:MouseEvent):void
{
_down = true;
}
private function upFun(evt:MouseEvent):void
{
if(_down)
{
if(evt.target != btn)
{
fun(evt);
}
}
_down = false;
}
public function addEventListener(e:String,f:Function,target:*,s:*):void
{
if(e == RELEASE_OUTSIDE)
{
btn = target;
fun = f;
target.addEventListener(MouseEvent.MOUSE_DOWN,downFun);
s.addEventListener(MouseEvent.MOUSE_UP,upFun);
}
}
}
}
使用方法:
var event:ExtMouseEvent = new ExtMouseEvent();
event.addEventListener(ExtMouseEvent.RELEASE_OUTSIDE,handel_function,button_Instance,stage);
封装得不好,见笑了,大家有更好的方法,希望能指教一下~
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1910.html