as3循环优化

时间:2011-11-19 14:25:54

标签: arrays flash actionscript-3 flex optimization

我有这段代码:

palette = new Array(paletteSize);
for (var i:int=0;i<paletteSize;i++) {
  palette[i] = 0xFF000000
    | (inputStream.readUnsignedByte() << 16)
    | (inputStream.readUnsignedByte() << 8)
    | (inputStream.readUnsignedByte());
}

此代码执行约300次,每次paletteSize从1-255变化。因此,整体而言,此代码大约需要60-80ms。这可以通过某种方式进行优化吗? inputStream(IDataInput)是一个套接字连接,它不会花费任何时间等待I / O.只有在流中有足够数量的字节时才会执行此代码。

1 个答案:

答案 0 :(得分:2)

从我的评论中复制:尝试使用“矢量”。而不是数组。此外,如果您控制传入流,您可以发送4字节颜色并使用readUnsignedInt读取它们,避免位移。