Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 将movieclip移向鼠标但突然停止_Flash_Actionscript 3 - Fatal编程技术网

Flash 将movieclip移向鼠标但突然停止

Flash 将movieclip移向鼠标但突然停止,flash,actionscript-3,Flash,Actionscript 3,我正在为我目前正在研究的东西试验不同的控制方案,目前我已经做到了,这样movieclip就可以跟随我的鼠标光标。我的问题是它来了,并且正好位于光标的点上(正如它“假定”的那样)。我想在光标周围有一个大约10px的半径,movieclip会停在这个半径处,这样它就会朝向光标,但停得很短。我能想到的唯一方法是碰撞检测,但这似乎是一条非常笨拙的路线 下面是我将movieclip移向鼠标的代码: 这是在ENTER_框架上运行的 var dx:Number = stage.mouseX - this.x;

我正在为我目前正在研究的东西试验不同的控制方案,目前我已经做到了,这样movieclip就可以跟随我的鼠标光标。我的问题是它来了,并且正好位于光标的点上(正如它“假定”的那样)。我想在光标周围有一个大约10px的半径,movieclip会停在这个半径处,这样它就会朝向光标,但停得很短。我能想到的唯一方法是碰撞检测,但这似乎是一条非常笨拙的路线

下面是我将movieclip移向鼠标的代码:

这是在ENTER_框架上运行的

var dx:Number = stage.mouseX - this.x;
var dy:Number = stage.mouseY - this.y;
this._vx = Math.cos(Math.atan2(dy, dx)) * this._speed;
this._vy = Math.sin(Math.atan2(dy, dx)) * this._speed;
this.x += this._vx;
this.y += this._vy;
为什么不用它来检查距离呢

var a:Number = stage.mouseX - x;
var b:Number = stage.mouseY - y;

var dist:Number = Math.sqrt(a*a + b*b);
if(dist > 10)
{
    _vx = Math.cos(Math.atan2(b, a)) * _speed;
    _vy = Math.sin(Math.atan2(b, a)) * _speed;
    x += _vx;
    y += _vy;
}
为什么不用它来检查距离呢

var a:Number = stage.mouseX - x;
var b:Number = stage.mouseY - y;

var dist:Number = Math.sqrt(a*a + b*b);
if(dist > 10)
{
    _vx = Math.cos(Math.atan2(b, a)) * _speed;
    _vy = Math.sin(Math.atan2(b, a)) * _speed;
    x += _vx;
    y += _vy;
}
包装{ 进口com.Ball; 导入flash.display.Sprite; 导入flash.events.Event

public class Main extends Sprite {
    private var bal:Ball;
    private var easing:Number=.3;

    public function Main():void {
        init();
    }
    private function init():void {
        bal=new Ball(8,Math.random() * 0xffffff);
        addChild(bal);
        addEventListener(Event.ENTER_FRAME,animAction);
    }
    private function animAction(e:Event):void {
        var dx:Number=mouseX - bal.x;
        var dy:Number=mouseY - bal.y;
        var ax:Number=dx * easing;
        var ay:Number=dy * easing;
        bal.x+= ax;
        bal.y+= ay;
    }
}
}包装{ 进口com.Ball; 导入flash.display.Sprite; 导入flash.events.Event

public class Main extends Sprite {
    private var bal:Ball;
    private var easing:Number=.3;

    public function Main():void {
        init();
    }
    private function init():void {
        bal=new Ball(8,Math.random() * 0xffffff);
        addChild(bal);
        addEventListener(Event.ENTER_FRAME,animAction);
    }
    private function animAction(e:Event):void {
        var dx:Number=mouseX - bal.x;
        var dy:Number=mouseY - bal.y;
        var ax:Number=dx * easing;
        var ay:Number=dy * easing;
        bal.x+= ax;
        bal.y+= ay;
    }
}

}

那正盯着我看,不是吗?呵呵。谢谢你的帮助那正盯着我是不是?呵呵。谢谢你的帮助