3

私はActionScriptワーカーを初めて使用しますが、これが可能かどうかを知りたいと思います。

私が読んだところによると、ActionScriptワーカー(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//すべてのメソッドは操作なしです。'cursor'プロパティの設定は何もしません
于 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のワーカーからデータを書き込みます。そのため、FlashPlayerは、レスポンシブUIの提供、トーンの再生、次のトーンの生成という3つのタスクを同時に実行しています。

サイモン

于 2012-09-11T11:29:40.950 に答える