Actionscript 3 仅在屏幕上显示为3时获取鼠标坐标

Actionscript 3 仅在屏幕上显示为3时获取鼠标坐标,actionscript-3,screen,mouse,Actionscript 3,Screen,Mouse,因此,我在屏幕上有一个字符,我希望它位于当前鼠标坐标 我遇到的问题是,当鼠标不在屏幕上时,角色将跳转到屏幕上的某个随机位置,而我希望它停留在鼠标上次出现在屏幕上时的位置 问题: 如何使我的角色停留在鼠标在屏幕上的最后一个位置 import flash.ui.Mouse; import flash.display.MovieClip; import flash.events.*; stage.addEventListener (Event.ENTER_FRAME,gameloop); functi

因此,我在屏幕上有一个字符,我希望它位于当前鼠标坐标

我遇到的问题是,当鼠标不在屏幕上时,角色将跳转到屏幕上的某个随机位置,而我希望它停留在鼠标上次出现在屏幕上时的位置

问题
如何使我的角色停留在鼠标在屏幕上的最后一个位置

import flash.ui.Mouse;
import flash.display.MovieClip;
import flash.events.*;
stage.addEventListener (Event.ENTER_FRAME,gameloop);
function gameloop(e:Event){ 
    Mouse.hide();
    Character.x = mouseX;
    Character.y = mouseY;
}

你只需要在你的职位分配上设置一些条件:

function gameloop(e:Event){ 
    Mouse.hide();
    if(mouseX > 0 && mouseX < stage.stageWidth - Character.width){  
        Character.x = mouseX;
    }

    if(mouseY > 0 && mouseY < stage.stageHeight - Character.height){
        Character.y = mouseY;
    }
}
函数gameloop(e:Event){
鼠标隐藏();
如果(mouseX>0&&mouseX0&&mouseY
您的意思是,如果鼠标位置大于
0
且小于舞台宽度(如果角色上的定位点为0,0,则字符宽度越小越好),则仅更新字符
x
值。如果条件未通过,角色将保持在其先前的位置

根据角色需要遵守的边界,您的条件可能会有所不同


但是,如果鼠标在屏幕外(在应用程序窗口外),它根本不应该更新mouseX/Y值,因此这里可能还有另一个问题?

因此,当鼠标离开屏幕时,出于某种原因,它会在屏幕上看似随机的位置读取鼠标值。鼠标的新随机位置似乎总是与最后一个鼠标值相差60-70+左右像素,因此我的解决方案是:

stage.addEventListener(MouseEvent.MOUSE_MOVE,screenExit);
function screenExit(e:MouseEvent){

    if((mouseX > (lastX+50))||(mouseX < (lastX-50))){
        lastX =mouseX;
        lastY =mouseY;
    }
    else if((mouseY > (lastY+50))||(mouseY < (lastY-50))){
        lastX =mouseX;
        lastY =mouseY;
    }
    else{
        Character.x = mouseX;
        Character.y = mouseY;
    }
    lastX =mouseX;
    lastY =mouseY;

    trace(mouseX, mouseY);
}
stage.addEventListener(MouseEvent.MOUSE\u MOVE,screenExit);
功能屏幕退出(e:MouseeEvent){
如果((mouseX>(lastX+50))| |(mouseX<(lastX-50))){
lastX=鼠标;
拉蒂=老鼠;
}
否则如果((鼠标>(lastY+50))| |(鼠标<(lastY-50))){
lastX=鼠标;
拉蒂=老鼠;
}
否则{
字符x=鼠标;
Character.y=mouseY;
}
lastX=鼠标;
拉蒂=老鼠;
跟踪(mouseX,mouseY);
}
每当鼠标移动时,它都会检查鼠标的值,如果值相差很大(50),则它会假定鼠标离开屏幕(实际情况),并且在鼠标返回屏幕并再次跟踪移动之前不会更新字符位置


还有可能有人移动鼠标的速度超过50像素(在这种情况下,鼠标将滞后于下一次移动)但考虑到我正在进行的游戏,速度不太可能如此之快。

我认为点击并拖出舞台会诱使代码将角色移出屏幕。跟踪鼠标值似乎当鼠标离开屏幕时,系统会在屏幕内给鼠标值一个值。