Javascript,具有生命周期的对象?

时间:2012-02-20 14:05:09

标签: javascript arrays settimeout setinterval lifetime

我遇到了一个我不知道如何在JavaScript中编码的问题。事情是我希望能够创建添加到Array的很多对象。当创建对象以添加到此数组时,它们将具有“生命周期”。当此生命周期用完时,应从阵列中删除此对象。

我试图在这里构建的是一个粒子系统,在所讨论的粒子寿命到期之后,粒子将从渲染中消失。

任何对此有好主意或榜样的人?

我考虑过使用setTimeoutsetIntervalclearInterval,但不确定这最有效。

2 个答案:

答案 0 :(得分:1)

类似于this

Felix Kling的更新:

var a = [], next = function() {
    a = a.slice(0,-1);
    document.body.innerHTML += a.length + "<br />";
    if (a.length != 0)
        setTimeout(next, 100);
};
for (var i = 0; i < 100; i++) {
    a.push({hi: 1});
}
setTimeout(next, 100);​

答案 1 :(得分:1)

您可以使用 micha 的代码示例。每次拨打&#34; next&#34;功能你可以更新粒子的状态(位置,速度等)。您还可以跟踪创建粒子的时间以及每个&#34; next&#34;调用检查当前时间减去创建时间是否超过某个常数,如果是,则删除粒子。根据所需的动画质量,您可能希望缩短超时之间的时间,例如: setTimeout(next, 25); 祝你好运:)