flash很少知道的东东
1、Flash不能运行多线程,只能运行一个线程,通过系统时间记录器去调用;
2、如果15秒一条指令没有运行完脚本必须完全退出队列。如下示例:
while(1==1)
{
}
trace("jackyshe");
运行后过15秒会弹出对话框问是否终止此程序,trace("jackyshe");指令永远不会执行。
3、帧的动作不受到播放器的保护(所以会出现跳帧现象),但是所有的脚本将会执行,即使它们被附属在被略过的帧上。
4、setInterval是一个在时间轴执行过程中被使用的系统计时器,准确程度能达到帧速率最大值的10倍左右。
例如:帧频是10fps即0.1秒播放一帧,那么setInterval准确程度能达到0.1 * 10 = 1秒,所以setInterval(1000,someFunction());。未来setInterval可能会更加精确。而onEnterFrame能够给出更加细致的结果。
5、AS解释器叫做AVM,AVM是一个机器代码堆栈,并且也是一个代码寄存器。MX2004使用寄存器来获取大量的性能提升。flash player 6r65和player 7 支持256个寄存器,进一步增强性能。player 6中的AVM只有4个寄存器r:0,r:1,r:2,r:3。r:0被编译器本身保留所以只有三个可用。所以文档被发布为flash player 6r65和player 7输出后运行将会更快。
6、要是脚本的运行速度得到提升 A:使用局部变量;B:使用短的变量名