动作中的多线程或绿色线程?

时间:2008-09-16 08:00:20

标签: multithreading actionscript

我想知道是否有任何关于如何在ActionScript中实现多线程或“绿色线程”的代码或类库。

正如您可能已经看到的那样,Scott Peterson正在开发某种工具集,但除了他在Adobe MAX芝加哥赛事上的表现之外,我还没有找到任何其他信息。

关心Niclas

4 个答案:

答案 0 :(得分:3)

这是来自Drew Cummins的Green Threading lib:

http://blog.generalrelativity.org/?p=29

答案 1 :(得分:1)

在ActionScript中没有内置的绿色线程方法。你必须编写代码来处理它。

创建一个函数,执行您想要执行的任何操作的一次迭代。它应该返回true或false,具体取决于它的工作是否完成。现在,您必须计算ENTER_FRAME事件中下一个屏幕更新的剩余时间间隔。这可以使用flash.utils.getTimer。

完成
start = getTimer();
//thread is a ui component added to system manager that is redrawn each frame
var fr:Number = Math.floor(1000 / thread.systemManager.stage.frameRate);
due = start + fr;

每次检查函数的返回值时继续执行函数,并通过比较getTimer()和due来检查是否超过了到期时间。

这已由Alex Harui在博客条目Threads in ActionScript

中实现为可用类

答案 2 :(得分:1)

It's an old article,但是quasimondo启动多个swfs然后通过LocalConnection共享数据的方法也可能很有用。他们说使用LocalConnection的来回可能会耗费几个周期,但如果正在处理的迭代非常复杂,那么问题应该不会太多。

答案 3 :(得分:-3)

我是一个图形人,而不是程序员,所以我不确定这会对你有所帮助。但是!

我制作所有的GUI多帧“电影”,并在不同的帧上写下每个gui线程。确保您只有1-3个线程,并将FPS设置为30或60。

这对于小项目非常有用,因为它可以为您完成防错和实施。