Thread类-Flash中的线程概念
发布:kinglong | 发布时间: 2005年4月30日P.S.
在最近Flash开发过程中,发现定时运行函数(setInterval)使用频率非常高,但这个方法用多了就比较混乱,不易管理,就要更好的方法了。然后我和同事商讨一个比较好的解决方案。我们就发现Java中线程是比较好的方法,于是我们就参照Java的Thread类,就写一个Flash的Thread类,这个类调用起来多了一两行代码,但是比较好控制和管理。和Java中Thread类非常相似。今天我也把它贴出来,希望对大家有一些帮助!
在最近Flash开发过程中,发现定时运行函数(setInterval)使用频率非常高,但这个方法用多了就比较混乱,不易管理,就要更好的方法了。然后我和同事商讨一个比较好的解决方案。我们就发现Java中线程是比较好的方法,于是我们就参照Java的Thread类,就写一个Flash的Thread类,这个类调用起来多了一两行代码,但是比较好控制和管理。和Java中Thread类非常相似。今天我也把它贴出来,希望对大家有一些帮助!
| 以下是Thread.as代码片段: 这个类不需要改直接使用; /* * Name:Thread.as * Auther:Kinglong * Email:kinglong@gmail.com * Date:2005-04-20 * Desc: * 线程的基类; */ class com.klstudio.util.Thread extends Object{ private var __mar:Number; private var __sleep_time:Number; function Thread(sleepTime:Number){ if(sleepTime == undefined){ this.__sleep_time = 50; }else{ this.__sleep_time = sleepTime; } } private function doRun():Void{ this.run(); } public function run():Void{ } public function start():Void{ this.__mar = setInterval(this,"doRun",this.__sleep_time); } public function stop():Void{ clearInterval(this.__mar); } public function setSleepTime(sleepTime:Number):Void{ this.__sleep_time = sleepTime; } public function getSleepTime():Number{ return this.__sleep_time; } } |
| 以下是testThread.as代码片段: import com.klstudio.util.Thread; class testThread extends Thread{ private var __label_txt:TextField; function testThread(){ super(1000); this.init(); } private function init():Void{ _root.createTextField("label_txt", 4, 0, 0, 100, 20); this.__label_txt = _root["label_txt"]; this.initLabel(); this.start(); } private function initLabel():Void{ this.__label_txt.autoSize = "left"; this.__label_txt.html = false; this.__label_txt.textColor = 0x000000; this.__label_txt.wordWrap = false; this.__label_txt.type = "dynamic"; this.__label_txt.selectable = false; } private function run():Void{ var today:Date = new Date(); var lbl:String = (today.getHours() < 10 ? "0" + today.getHours() : today.getHours()) + ":" + (today.getMinutes() < 10 ? "0" + today.getMinutes() : today.getMinutes()) + ":" + (today.getSeconds() < 10 ? "0" + today.getSeconds() : today.getSeconds()); this.__label_txt.text = lbl; } } |
| 以下是Flash调用代码片段: stop(); var tt:testThread = new testThread(); |
发布:kinglong | 分类:Flash技术 | 评论:4 | 引用:0 | 浏览:
| TrackBack引用地址
- 相关文章:
终于可以学习和开发flash lite 2.0的程序了 (2006-1-4 15:27:55)
最近刚完成的flash视频项目 (2006-1-4 15:24:2)
更新Flash视频服务端技术 (2005-12-1 15:20:22)
flash视频服务端应用开发 (2005-11-22 14:48:56)
更新Loading组件 (2005-11-9 15:28:47)
从AS2.0到AS3.0 (2005-10-18 15:34:1)
AS 3.0—flash变革性代码体系的来临 (2005-10-8 15:36:58)
Loading组件(原创组件) (2005-9-13 15:41:16)
Flash动态显示波形组件(原创组件) (2005-8-28 15:42:46)
prototype属性和ASSetPropFlags函数(转载) (2005-8-5 15:47:41)
- 1.mmfxx
- 请问阁下知不知道flash actionscript中有没有类似C#或Java的Sleep()的方法?就是让线程真正阻塞,而不是执行setInterval那样,是每隔一段时间执行一次,而执行完接着返回做别的去了。急盼回复!
- 2006-9-3 19:52:27 回复该留言
- 2.kinglong
- http://www.klstudio.com
- as1,as2里没有这样的方法和机制的,但as3里好像有一个类似的机制!
- 2006-9-4 9:02:01 回复该留言
- 4.kinglong
- http://www.klstudio.com
- AS3中直接使用Timer类就可以了!
- 2007-8-29 23:28:32 回复该留言
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。




