宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]鼠标离开swf文件舞台时自动触发事件代码示例

2016-10-13 00:16:48 点击量:7 标签: 收藏本文

一般的,只要和鼠标有关系的某个功能swf文件!都少不了离开 舞台(即离开swf的处理)   但是怎么处理最方便呢??
那就是是自动触发机制  自动出发事件 dispatchEvent();打个比方 假如 一个mc 当按下鼠标时 这个mc跟随mc   即mouseDown事件 当弹起鼠标时出发mouseUp事件  mc回到舞台中央

  1. mc.addEventListener(MouseEvent.MOUSE_DOWN,onDown);  
  2. mc.addEventListener(MouseEvent.MOUSE_UP,onUp);  
  3. private function onDown(e:MouseEvent):void{  
  4. isDown=true 
  5. mc.x=stage.mouseX  
  6. mc.y=stage.mouseY  
  7. }  
  8. private function onUp(e:MouseEvent):void{  
  9. isDown=false'  
  10. Tweener.addTween(mc,{time:1,x:stage.stageWidth/2,y:stage.stageHeight/2});  


当我们只这样做,而不加离开swf时的处理模块时,一般在和鼠标有关系的应用程序中 很容易产生 bug ;当我们离开swf  并且弹起鼠标 由于 swf不是焦点 故接受不到这个事件 当你在移动鼠标进入swf中,发现mc依然跟随鼠标 这是我们不愿意看见的.所以 我们需要在离开舞台时时触发  mouseUp事件,也就是在enterFrame事件中加上 发送事件

  1. private function onFrame(e:Event){  
  2. if(isDown){  
  3. if((stage.mouseX>stage.stageWidth)||(stage.mouseX<0)||

    (stage.mouseY
    >stage.stageHeight)||(stage.mouseY<0)){  
  4. mc.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP));

    //触发mouseUo事件  
  5. }  
  6. }  

上面的方法只是最基础的处理原型 !!触发对等的事件可以节省很多代码!!!

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室