我正在构建池塘闪光应用程序,并且它具有水波纹效果,当渲染时,水波纹效果不在我的鼠标位置,而实际上我的功能使它在我的鼠标位置上绘制。我在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;
}
答案 0 :(得分:2)
我认为您需要检查stage.align是否设置为topLeft并且stage.scaleMode设置为noScale,除非您确实需要具有不同的设置。
如果您仍然遇到问题,那么这可能是因为您在嵌套容器(Sprite,DisplayObject等)中绘制并且是偏移的。如果是这种情况,您可以使用globalToLocal来解决有关鼠标的位置问题吗?
答案 1 :(得分:0)
我找到了解决这个问题的方法,当我的鱼在靠近画布最大Y和最大X的随机x,y点游动时,效果只会移动到位,所以我减少了生成的随机XY值游泳的鱼比最大Y和最大X小得多,所以它不会靠近边缘游泳。