可能重复:
flash as3 - how do I find an object's index in an array
我有一个类似于:
的对象数组[
{
start : 0.000,
end : 0.100
},
{
start : 0.100,
end : 0.200
},
{
start : 0.200,
end : 0.300
}
]
我是否可以通过快速方式逐帧查询此对象,以找出值(在这种情况下是音频播放的当前时间)所在的位置?
在与我的同事聊天之后,他们建议我将其枚举为一大堆索引值,并引用与之关联的索引,例如
[000] = 0
[001] = 0
...
[100] = 1
...
[200] = 2
答案 0 :(得分:2)
索引策略是最快的,但是你不需要这样做吗?:
["0.000"] = {};
["0.100"] = {};
或者你可以在你的第一个例子中循环并选择相关的对象,假设你的数组中只有1000个对象,它应该足够快:
function find(start:Number):int
{
for each(var i:Object in yourArray)
{
if(i.start == start) return yourArray.indexOf(i);
}
}
这应该返回具有指定开始时间的对象的索引:
trace(find(0.1)); // 1
答案 1 :(得分:0)