[AS3]鼠标离开swf文件舞台时自动触发事件代码示例
一般的,只要和鼠标有关系的某个功能swf文件!都少不了离开 舞台(即离开swf的处理) 但是怎么处理最方便呢??
一般的,只要和鼠标有关系的某个功能swf文件!都少不了离开 舞台(即离开swf的处理) 但是怎么处理最方便呢??
那就是是自动触发机制 自动出发事件 dispatchEvent();打个比方 假如 一个mc 当按下鼠标时 这个mc跟随mc 即mouseDown事件 当弹起鼠标时出发mouseUp事件 mc回到舞台中央
- mc.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
- mc.addEventListener(MouseEvent.MOUSE_UP,onUp);
- private function onDown(e:MouseEvent):void{
- isDown=true
- mc.x=stage.mouseX
- mc.y=stage.mouseY
- }
- private function onUp(e:MouseEvent):void{
- isDown=false'
- Tweener.addTween(mc,{time:1,x:stage.stageWidth/2,y:stage.stageHeight/2});
- }
当我们只这样做,而不加离开swf时的处理模块时,一般在和鼠标有关系的应用程序中 很容易产生 bug ;当我们离开swf 并且弹起鼠标 由于 swf不是焦点 故接受不到这个事件 当你在移动鼠标进入swf中,发现mc依然跟随鼠标 这是我们不愿意看见的.所以 我们需要在离开舞台时时触发 mouseUp事件,也就是在enterFrame事件中加上 发送事件
- private function onFrame(e:Event){
- if(isDown){
- if((stage.mouseX>stage.stageWidth)||(stage.mouseX<0)||
(stage.mouseY>stage.stageHeight)||(stage.mouseY<0)){- mc.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP));
//触发mouseUo事件- }
- }
- }
上面的方法只是最基础的处理原型 !!触发对等的事件可以节省很多代码!!!
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...