鼠标出舞台,“手放开”
一般的,只要和鼠標有關系的某個功能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事件
}
?}
}
上面的方法只是最基礎的處理原型 !!觸發對等的事件可以節省很多代碼!!!
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hu36978/archive/2010/07/31/5777836.aspx
總結
以上是生活随笔為你收集整理的鼠标出舞台,“手放开”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TOJ-3474 The Big Dan
- 下一篇: 一种构建网络安全知识图谱的实用方法——贾