用画布重新绘制区域?

时间:2011-07-12 04:15:18

标签: flash actionscript-3 cs4

我正在构建池塘闪光应用程序,并且它具有水波纹效果,当渲染时,水波纹效果不在我的鼠标位置,而实际上我的功能使它在我的鼠标位置上绘制。我在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;


        }

2 个答案:

答案 0 :(得分:2)

我认为您需要检查stage.align是否设置为topLeft并且stage.scaleMode设置为noScale,除非您确实需要具有不同的设置。

如果您仍然遇到问题,那么这可能是因为您在嵌套容器(Sprite,DisplayObject等)中绘制并且是偏移的。如果是这种情况,您可以使用globalToLocal来解决有关鼠标的位置问题吗?

答案 1 :(得分:0)

我找到了解决这个问题的方法,当我的鱼在靠近画布最大Y和最大X的随机x,y点游动时,效果只会移动到位,所以我减少了生成的随机XY值游泳的鱼比最大Y和最大X小得多,所以它不会靠近边缘游泳。