2012-01-22 12 views
0

私は、アクションスクリプトはマルチスレッドを提供しないので、フレックスアプリケーションを書くときには1つのスレッドで作業することができます。これは私のUIをレンダリングするのには大丈夫です。フレックス非同期I/O操作はワーカースレッド上にありますか?

シルバーの上にフレックス好むしかし、いくつかの疑問が生じ:UI層の単一スレッドは十分ですが、それは内部的には、いくつかの労働者を使用することになり、Flexでの操作と同様にAyncのためのHTTPServiceをそれを前提とする公正であるとして

  1. 非同期操作を管理し、メインスレッドに戻ってきますか?私のUIはフリーズしていないので、それはそれのように見えます。
  2. フレックス/フラッシュプレーヤーは、複数のhttpサービス呼び出しを同時に処理できますか? (例えば、同時に複数のUIをロードする複数のセクション)。
  3. アニメーションの仕組み(例:パラレルアニメーション) - Flash Playerは内部的にグラフィックを高速化するためにいくつかのスレッドを利用するか、UI糸 ?

答えて

3

が、それは内部的に非同期操作を管理するために、いくつかのワーカースレッドを使用することになり、その後、バックメインスレッド

Noに来る、Flexでの操作と同様にAyncのためにそれを想定するのHTTPService公平です。 応答データの処理は、UIの更新と同じスレッドで行われます。たとえば、1回の呼び出しで5,000個のAMFオブジェクトを返すと、Flash Playerはスレッドでこれを逆シリアル化し、UIをフリーズさせます。

内部的には、ブラウザがスレッドを使用してエンドURLからの応答のロードを管理している可能性があります。ただし、レスポンスが返されてブラウザからFlash Playerプラグインに渡されると、そのデータのデシリアライズと処理はメインスレッドで行われます。

フレックス/フラッシュプレーヤーは、複数のhttpサービス呼び出しを並行して処理できますか? (例えば、同時にUIロードするデータの複数のセクション)

はい。 ここでの制限は、ブラウザからの同時HTTP要求の最大数に制限されています。これはブラウザごとに異なりますが、一般的に言えば、複数のリクエストをバックエンドサービスに送信することは賢明です(お勧めします)。

AsyncTokenは、同時呼び出しを処理する際に使用されるFlexのメインクラスであり、要求と応答が一致することを保証します。

は、Flexでのほとんどのクラスがリモートサービスとcommunciatingのために使用されることに注意してください(例えば、HttpServiceRemoteObject)オブジェクトが複数の同時要求に対処する方法を定義concurrencyプロパティを公開します。 (開発者に明示的に許可または禁止することを許可する)。

アニメーションの仕組み(例:パラレルアニメーション) - Flash Playerは内部的にグラフィックを高速化するためにいくつかのスレッドを利用するのですか、それともすべてUIスレッドで行われますか?

これは私の専門分野ではなく、誰かが私を修正するかもしれません。しかし、Flexは一連のKeyFramesを生成し、UIComponent上の値のプロパティを時間の経過と共に変更して実行することで、アニメーションを作成すると考えています。 (実行は他のすべてと同じスレッドで行われます)。 したがって、パラレルアニメーションは、キーフレームのターゲットを集約して一緒に実行することによって生成されます。

例:Keyframe n at ms300 = { UIComponent1.x = 300; UIComponent2.y = 300 }

関連する問題