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 用定时器移动物体_Flash_Actionscript 3 - Fatal编程技术网

Flash 用定时器移动物体

Flash 用定时器移动物体,flash,actionscript-3,Flash,Actionscript 3,我有一个名为MovingObject的类,它扩展了MovieClip类。这个类将被实例化多次。该类中有一个计时器,用于处理对象移动的速度。还有另一个类叫做TheStage,我将在这里实例化MovingObject 公共类MovingObject扩展了MovieClip{ 公共变量tmr:计时器=新计时器(1); 公共功能移动对象(){ tmr.addEventListener(TimerEvent.TIMER,Move); } 公共函数StartMove():void{ this.tmr.sta

我有一个名为MovingObject的类,它扩展了MovieClip类。这个类将被实例化多次。该类中有一个计时器,用于处理对象移动的速度。还有另一个类叫做TheStage,我将在这里实例化MovingObject

公共类MovingObject扩展了MovieClip{ 公共变量tmr:计时器=新计时器(1); 公共功能移动对象(){ tmr.addEventListener(TimerEvent.TIMER,Move); } 公共函数StartMove():void{ this.tmr.start(); } 公共功能更改速度(延迟:编号):无效{ this.tmr.delay=延迟; } 公共功能移动(evt:TimerEvent):无效{ //一些代码使这个.x和这个.y发生变化 } } 公共类舞台延伸了电影唇{ 公共var objectArray:Array=[]; 舞台上的公共功能{ 变量x:int=0; var mcMoveObject; 而(x!=10){ mcMoveObject=新的MovingObject(); mcMoveObject.x+=10;//对象之间的偏移量 mcMoveObject.y+=10;//对象之间的偏移量 this.addChild(mcMoveObject); push(mcMoveObject); mcMoveObject.tmr.start(); x++; } } 公共函数ChangeSpeed(delay:Number):void{//要更改速度的某些函数 对于(变量chilCnt:int=0;chilCnt
假设代码工作正常(我还没有调试),这会使粒子同时移动。但是运行几秒钟后,粒子似乎没有同步移动(因为它们之间的距离似乎越来越近)。我需要一些帮助,使对象在彼此距离均匀的情况下移动。

按原样使用代码,您在舞台上只能看到一个粒子,以下代码不会偏移对象

mcMoveObject = new MovingObject(); mcMoveObject.x += 10;//offset between the objects mcMoveObject.y += 10; //since you're instantiating a new MovingObject +=10 doesn't do what you expect // it simply sets a value of 10 for x & y.
你真的试过这个代码吗?我不明白为什么你的运动对象会不同步,现在它们应该一起运动。

这里有一个关于粒子的好资源:


我建议您查看一下提供的代码。

尝试将代码包装在标记中或缩进四个空格。这样更易于阅读!使用计时器有什么好处?为什么不使用enterFrame事件? mcMoveObject = new MovingObject(); mcMoveObject.x += 10;//offset between the objects mcMoveObject.y += 10; //since you're instantiating a new MovingObject +=10 doesn't do what you expect // it simply sets a value of 10 for x & y. var objX:int; var objY:int; while( x!=10 ) { objX +=10; objY +=10; mcMoveObject = new MovingObject(); mcMoveObject.x += objX; mcMoveObject.y += objY; //etc.... mcMoveObject.tmr.start();
mcMoveObject.StartMove();