我想知道是否有任何关于如何在ActionScript中实现多线程或“绿色线程”的代码或类库。
正如您可能已经看到的那样,Scott Peterson正在开发某种工具集,但除了他在Adobe MAX芝加哥赛事上的表现之外,我还没有找到任何其他信息。
关心Niclas
答案 0 :(得分:3)
这是来自Drew Cummins的Green Threading lib:
答案 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。
这对于小项目非常有用,因为它可以为您完成防错和实施。