首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3: enterframe/s中的循环

AS3: enterframe/s中的循环
EN

Stack Overflow用户
提问于 2012-11-16 22:43:00
回答 1查看 829关注 0票数 2

我有6个物体必须随机连续地移动。是将每个对象单独放入框中,还是将一个对象放入一个框中并循环处理所有对象。

代码语言:javascript
复制
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函数中的对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 23:14:54

每个函数调用都有一个性能损失--这就是为什么人们在代码的关键部分谈论“内联”函数(内联函数内容而不是进行函数调用)。

因此,最好的情况是只添加一个侦听器,并在该侦听器循环中遍历所有6个对象。另一个提示-如果反向迭代循环,则只对数组调用一次.length()函数,而如果从0长度开始迭代,则for循环每次都必须调用长度函数来确定是否满足条件。

代码语言:javascript
复制
function enterFrame(e:Event):void
{
  for (var i:int=myObjArray.length-1; i>=0; i--) {
    myObjArray[i].x++;
  }
}

当然还有其他的优化(有些人说--我比我更快--但我不确定这是否适用于ActionScript)。

当然,在6个对象的情况下,这并不是什么大问题,但如果你将其放大,你肯定会想要使用一个监听器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13418819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档