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/3/sql-server-2005/2.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 as3物理弹簧问题_Flash_Actionscript 3_Spring_Flash Cs4_Physics - Fatal编程技术网

flash as3物理弹簧问题

flash as3物理弹簧问题,flash,actionscript-3,spring,flash-cs4,physics,Flash,Actionscript 3,Spring,Flash Cs4,Physics,我想做一个as3 spring程序,效果如下: 经过一些研究并查看一些示例,我的程序如下: public class testing_2 extends MovieClip { //--------------declare variables private var xdif:Number; private var ydif:Number; private var xvel:Number = 0; private var yvel:Number = 0

我想做一个as3 spring程序,效果如下:

经过一些研究并查看一些示例,我的程序如下:

public class testing_2 extends MovieClip
{
    //--------------declare variables
    private var xdif:Number;
    private var ydif:Number;
    private var xvel:Number = 0;
    private var yvel:Number = 0;

    private var totalNum:Number = 3;
    private var d:Number = 20;
    private var springArray:Array = [];

    public function testing_2()
    {
        //-------------init stuffs
        init_mc();
        init_event();
    }

    private function init_mc()
    {
        for (var i:Number = 0; i < totalNum; i++)
        {
            var mc:MovieClip = new box()  ;
            mc.num = i;
            springArray.push(mc);
            addChild(mc);
            //mc.x = stage.stageWidth/2;
            //mc.y = stage.stageHeight/2 + i*d;
        }
    }

    private function init_event()
    {
        this.addEventListener(Event.ENTER_FRAME, spring);
    }

    //-------------own functions
    function spring(e)
    {
    for (var i:Number = totalNum-1; i >= 0; i--){

        xdif = mouseX - springArray[i].x;
        ydif = mouseY - springArray[i].y;


        xvel +=  xdif * (0.4);
        yvel +=  ydif * (0.4);


        xvel *=  (0.8);
        yvel *=  (0.8);


        springArray[i].x +=  xvel ;
        springArray[i].y +=  yvel ;

        }
    }
public class testing_2扩展了MovieClip
{
//--------------声明变量
私有变量xdif:编号;
私有变量ydif:编号;
私有变量xvel:Number=0;
私有变量yvel:Number=0;
私有变量totalNum:Number=3;
私有变量d:数字=20;
私有变量springArray:Array=[];
公共功能测试_2()
{
//-------------初始化文件
init_mc();
初始化事件();
}
私有函数init_mc()
{
对于(变量i:Number=0;i=0;i--){
xdif=mouseX-springArray[i].x;
ydif=mouseY-springArray[i].y;
xvel+=xdif*(0.4);
yvel+=ydif*(0.4);
xvel*=(0.8);
yvel*=(0.8);
springArray[i].x+=xvel;
springArray[i].y+=yvel;
}
}
这不是一个成功的程序,因为球不能以一定的距离分开,而且当球滚动时,它们处于相同的圆形路径中,无法达到网站链接的效果; ydif=mouseY-springArray[i].y;但我无法指出问题所在


有人能帮忙吗?非常感谢。

在您的代码中,每个球都有相同的行为,因为for循环中的两次迭代之间没有变化。您应该尝试第一个球指向鼠标,第二个球指向第一个,第三个球指向第二个

for (var i:Number = 0; i < totalNum; i++){
    if (i == 0)
    {
        xdif = mouseX - springArray[i].x;
        ydif = mouseY - springArray[i].y;
    } else
    {
        xdif = springArray[i-1].x - springArray[i].x;
        ydif = springArray[i-1].y - springArray[i].y;
    }

    ...
for(变量i:Number=0;i