3

我对ActionScript Workers很陌生,但我想知道这是否可能。

根据我的阅读,ActionScript Workers (ASW) 就像单独的线程,可以在不中断主线程(正在执行您的主 SWF 文件)的情况下执行更多 CPU 密集型计算。

我真正看到的唯一一个例子是动画以一致的速率播放,而 ASW 负责加载或计算一些密集的数学公式。

声音 API 是否可用于 ActionScriptWorkers?

4

2 回答 2

4

我要冒险到悬崖上,对这个问题回答“是”。

发行说明有一个“非功能性”API 列表,我在列表中看不到任何与声音相关的类。

以下 API 在后台工作人员中不可用。任何构造这些实例的任何尝试都将引发 IllegalOperationError 并显示消息“此功能在此上下文中不可用”,errorID 在所有实例中都将相同,从而允许开发人员关闭此值。

  • flash.desktop.Clipboard// 调用构造函数将抛出;调用 generalClipboard 将返回 null
  • flash.desktop.NativeDragManager// isSupported 返回 false
  • flash.desktop.Updater// isSupported 返回 false
  • flash.display.NativeMenu// isSupported 返回 false
  • flash.display.NativeWindow// isSupported 返回 false
  • flash.display.ToastWindow// 无法访问实例,因为 stage.window 永远不会被定义
  • flash.display.Window// 无法访问实例,因为 stage.window 永远不会被定义
  • flash.external.ExtensionContext// createExtensionContext() 将始终返回 null 或抛出错误
  • flash.external.ExternalInterface// 可用返回 false
  • flash.html.*// HTMLLoader.isSupported 返回 false
  • flash.media.CameraRoll// supportsAddBitmapData 和 supportsBrowseForImage 返回 false
  • flash.media.CameraUI// isSupported 返回 false
  • flash.media.StageWebView// isSupported 返回 false
  • flash.net.drm.*// DRMManager.isSupported 返回 false
  • flash.printing.*// PrintJob.isSupported 返回 false
  • flash.security.XMLSignatureValidator// isSupported 返回 false
  • flash.system.IME// isSupported 返回 false
  • flash.system.SystemUpdater// 调用构造函数抛出
  • flash.text.StageText// 调用构造函数抛出 flash.ui.ContextMenu // isSupported 返回 false
  • flash.ui.GameInput// isSupported 返回 false
  • flash.ui.Mouse// 所有方法都是无操作的;设置“光标”属性是无操作的
于 2012-08-10T17:19:19.513 回答
4

(在我的正确登录下重新发布)

他们当然可以!看看我最近关于这个的博客文章:

http://flexmonkey.blogspot.co.uk/2012/09/multi-threaded-sound-synthesis-in-flex.html#!/2012/09/multi-threaded-sound-synthesis-in-flex.html

经过一番修改后,我实际上在后台工作程序中生成了一个字节数组,然后将数据写回原始线程(即用户界面)中的 SampleDataEvent 的数据属性。

我从上一个 SampleDataEvent 中写入来自 worker 的数据,而 worker 为下一个生成数据 - 所以 FlashPlayer 实际上同时执行三个任务:提供响应式 UI、播放音调和生成下一个音调。

西蒙

于 2012-09-11T11:29:40.950 回答