我有6个物体必须随机连续地移动。是将每个对象单独放入框中,还是将一个对象放入一个框中并循环处理所有对象。
var myObjArray:Array = new Array(); // Contains 6 movieclip objects
for(var i=1; i<=6; i++)
{
var Square:MoveObject = new MoveObject();
Square.addEventListener(Event.ENTER_FRAME, Square.go);
myObjArray[i] = Square;
}
public Class MoveObject extends Movieclip{
public function go(e:Event):void
{
this.x++;
}
}或者我们循环遍历一个EnterFrame函数中的对象?
发布于 2012-11-16 23:14:54
每个函数调用都有一个性能损失--这就是为什么人们在代码的关键部分谈论“内联”函数(内联函数内容而不是进行函数调用)。
因此,最好的情况是只添加一个侦听器,并在该侦听器循环中遍历所有6个对象。另一个提示-如果反向迭代循环,则只对数组调用一次.length()函数,而如果从0长度开始迭代,则for循环每次都必须调用长度函数来确定是否满足条件。
function enterFrame(e:Event):void
{
for (var i:int=myObjArray.length-1; i>=0; i--) {
myObjArray[i].x++;
}
}当然还有其他的优化(有些人说--我比我更快--但我不确定这是否适用于ActionScript)。
当然,在6个对象的情况下,这并不是什么大问题,但如果你将其放大,你肯定会想要使用一个监听器。
https://stackoverflow.com/questions/13418819
复制相似问题