1

我目前正在构建一个池塘 Flash 应用程序,它具有水波纹效果,当它被渲染时,水波纹效果不在我的鼠标位置,而实际上我的功能使它在我的鼠标位置上绘制。我在 Flash 播放器上做了一个显示重绘区域并附上了图片。有人知道如何解决这个问题吗? 在此处输入图像描述

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;


        }
4

2 回答 2

2

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

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

于 2011-07-12T11:30:26.910 回答
0

我找到了解决这个问题的方法,只有当我的鱼游向靠近画布最大 Y 和最大 X 的随机 x、y 点时,效果才会移动,所以我将鱼生成的随机 XY 值减少到游到远小于最大 Y 和最大 X,因此它不会靠近边缘游动。

于 2011-07-13T10:32:13.903 回答