2011-07-12 44 views
1

我目前正在構建一個池塘閃光燈應用程序,它具有水波紋效果,當它被渲染時,水波紋效果不在我的鼠標位置,實際上我的功能使它在我的鼠標位置上繪製。我在Flash播放器上做了一個顯示重繪區域,並附上圖片。是否有人知道如何解決這個問題? enter image description here在畫布中重繪區域?

addEventListener(MouseEvent.MOUSE_MOVE,onMouseMoveTriggered); 
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownTriggered); 
private function onMouseMoveTriggered(e:Event):void { 
      if (canPlay) 
      { 
      waterMovementSound.play(); 
      canPlay = false; 
      soundTimer.start(); 
      } 
      myRippler.drawRipple(stage.mouseX, stage.mouseY, 10, 0.9); 

      //evt.stageX 
      //evt.stageY 
     } 
     private function onMouseDownTriggered(e:Event):void { 
      myRippler.drawRipple(stage.mouseX,stage.mouseY, 10, 0.9); 
      stage.mouseX; 
      stage.mouseY; 


     } 
+0

你能發表任何代碼嗎?您是否添加鼠標移動偵聽器並從畫布的座標系中檢查mouseX和mouseY? –

+0

嗨,ive添加了效果繪製的功能 – sutoL

+0

@kyrogue Btw,看起來非常酷!感謝烈士 – Marty

回答

0

我發現了一個解決這個問題的方法,當我的魚遊向靠近畫布最大值Y和最大值X的隨機x,y點時,效果只移動到位,所以我減少了生成的隨機XY值因爲魚游到比最大Y和最大X小得多,因此它不會游到邊緣附近。

2

我想你需要檢查Stage.align設置爲左上和Stage.scaleMode設置爲noScale,除非你確實需要有不同的設置。

如果你仍然有問題,那麼這可能是因爲你在一個嵌套的容器(Sprite,DisplayObject等)內繪圖,這是偏移。如果是這種情況,你可以使用globalToLocal來解決有關鼠標位置問題的問題?

+0

我同意 - globalToLocal應該解決這個問題。 – Bosworth99

+0

我的層次結構如下所示,waterMain(文檔類) - >有一個擴展Sprite的背景的子節點,並且在該節點上繪製了rippler,並且同一個文檔類中也有「Fishes」對象的子節點在遊動。 – sutoL

+0

的事情是如果我不添加任何魚的物體,它的效果很好。當我添加它們時,水波紋開始變得不合時宜。 – sutoL