[AS3]as3多个setTimeout之间如何按顺序依次执行
Flash actionscript3.0 多个setTimeout之间会顺序执行 单线程执行 无法中止,做了一个试验,测试能否在另外的setTimeout中中断其他代码的执行。结果表明,是不可能的,Actionscript会按顺序,逐个逐个的执行
做了一个试验,测试能否在另外的setTimeout中中断其他代码的执行。结果表明,是不可能的,Actionscript会按顺序,逐个逐个的执行。
- private var index:int;
- private var stop:Boolean = false;
- public function EffectTest()
- {
- setTimeout(run, 200);
- setTimeout( function():void
- {
- trace("try to terminate running");
- stop = true;
- }, 500);
- setTimeout( function():void
- {
- trace("index is", index);
- }, 600);
- }
- protected function run(): void
- {
- //this loop needs 1.3s to finish
- for (var i:int = 0; i < 10000000; i++)
- {
- if (stop)
- {
- iindex = i;
- trace("running has been terminated");
- return;
- }
- var a:Number = Math.sqrt(i);
- }
- iindex = i;
- trace("finish running");
- }
如果第二个setTimeout能中止的话,应该输出running has been terminated
但实际运行结果,这部分是没有执行的。run函数还是好好的完全被执行完。
最终输出:
finish running
try to terminate running
index is 10000000
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...