3

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

正如您可能已经看到的,Scott Peterson 正在开发某种工具集,但除了他在 Adob​​e MAX Chicago 活动中的表现之外,我没有找到更多关于此的信息。

问候尼古拉斯

4

4 回答 4

3

这是 Drew Cummins 的绿色线程库:

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

于 2009-01-12T01:42:01.330 回答
1

It's an old article, but quasimondo's method of launching multiple swfs and then sharing the data over a LocalConnection may also be of interest. They were saying that the back and forth of using the LocalConnection may eat up a few cycles, but if the iterations being processed are complex enough it shouldn't be too much of a problem.

于 2009-04-30T01:25:29.590 回答
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() 和到期时间来检查是否超过了到期时间。

这已由 Alex Harui 在博客条目 - ActionScript 中的线程中实现为一个可用的类

于 2008-09-16T08:23:47.360 回答
-3

我是图形专家,而不是程序员,所以我不确定这会对您有所帮助。但!

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

这对于小型项目很有用,因为它的错误抗性和实现是为您完成的。

于 2008-09-16T23:49:40.740 回答