ActionScript中的多线程或绿色线程?

3

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

你可能已经看到了,Scott Peterson正在开发某种工具集,但除了他在Adobe MAX Chicago活动上的表现外,我没有找到更多信息。

谢谢,Niclas

4个回答

3

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在博客文章ActionScript中的线程中将其实现为可用的类。


1

这是一篇旧文章,但是quasimondo的启动多个swf文件,然后通过LocalConnection共享数据的方法可能也很有趣。他们说使用LocalConnection来回传输数据可能会占用一些计算资源,但如果正在处理的迭代足够复杂,那么这应该不会是什么大问题。


-3

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

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

对于小项目来说,这非常有用,因为它具有防止错误的特性,并且实现已经为您完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接