クライアントとサーバーの最適化されたデータ通信のためには、
Flash Remoting
およびAMF
を使用します。リモートコンテンツを
SWF
ファイルにロードするのにXML
を使用することができます。ただし、XML
はランタイムが ロードおよび解析するプレーンテキストです。XML
は限られた量のコンテンツをロードするアプリケーションに適してい ます。大容量のコンテンツをロードするアプリケーションを開発している場合は、Flash Remoting
テクノロジーとAction Message Format
(AMF
)の使用を検討してください。AMF
は、サーバーとランタイム間でのデータ共有に使用されるバイナリ形式です。AMF
を使用すると、データのサイズを 縮小して、転送速度を改善できます。AMF
はランタイムのネイティブフォーマットなので、AMF
データをランタイムに送 信すると、メモリを集中的に使用するシリアル化および非シリアル化をクライアント側で避けることができます。これらの タスクはリモートゲートウェイが処理します。ActionScript
データタイプをサーバーに送信すると、リモートゲートウェイ がシリアライゼーションをサーバーサイドで処理します。また、ゲートウェイは対応するデータタイプをユーザーに送信し ます。このデータタイプはサーバー上で作成されたクラスです。ランタイムから呼び出すことのできる一連のメソッドが公78
FLASH PLATFORM
のパフォーマンスの最適化ネットワーク通信の最適化
次の図は、
Flash Remoting
の概念図です。Flash Remoting
次の例では、
NetConnection
クラスを使用してFlash Remoting
ゲートウェイに接続します。// Create the NetConnection object
var connection:NetConnection = new NetConnection ();
// Connect to a Flash Remoting gateway
connection.connect ("http://www.yourserver.com/remotingservice/gateway.php");
// Asynchronous handlers for incoming data and errors function success ( incomingData:* ):void
{
trace( incomingData );
}
function error ( error:* ):void {
trace( "Error occured" );
}
// Create an object that handles the mapping to success and error handlers var serverResult:Responder = new Responder (success, error);
// Call the remote method
connection.call ("org.yourserver.HelloWorld.sayHello", serverResult, "Hello there ?");
リモートゲートウェイへの接続は簡単です。
Adobe® Flex® SDK
に含まれているRemoteObject
クラスを使用すれば、Flash Remoting
をさらに簡単にできます。注意:
Adobe® Flash® Professional
プロジェクト内では、外部のSWC
ファイル(Flex
フレームワークのファイルなど)を使用できます。
SWC
ファイルを使用すれば、RemoteObject
クラスとその依存クラスを使用できます。他のFlex SDK
は 必要ありません。上級開発者は、必要に応じて、未加工型のSocket
クラス経由でリモートゲートウェイと直接通信できま す。不要なネットワーク操作
アセットが必要になるたびにネットワークからロードするのではなく、ロードしたアセットをローカルにキャッシュし ておきます。
アプリケーションでメディアまたはデータなどのアセットをロードする場合、ローカルデバイスに保存することでアセット をキャッシュします。変更頻度が低いアセットの場合、変更の間にキャッシュを更新する方法があります。例えば、
1
日に1
度、イメージファイルの新しいバージョンをチェックする場合や、2
時間に1
度、更新データをチェックする場合です。アセットのキャッシュ方法はいくつかあり、アセットの種類と特性によって異なります。
•
イメージやビデオなどのメディアアセット:File
クラスおよびFileStream
クラスを使用してファイルシステムにファイ ルを保存します。HTTP
ZendAMF Web ORB RubyAMF FluorineFX BlazeDS AMF
サービス
(PHP クラス、
Java、C#...)
79
FLASH PLATFORM
のパフォーマンスの最適化ネットワーク通信の最適化
•
個々のデータ値または小さなデータセット:SharedObject
クラスを使用してローカルの共有オブジェクトとして値を保 存します。•
大きなデータセット:ローカルデータベースにデータを保存するか、データをシリアル化してファイルに保存します。データ値のキャッシュについては、オープンソースの
AS3CoreLib
プロジェクトを参照してください。ロードとキャッシュ を行うResourceCache
クラスが含まれています。80
第 7 章: メディアの操作
ビデオ
モバイルデバイス上のビデオパフォーマンスの最適化について詳しくは、
Adobe Developer Connection Web
サイトの「
Optimize web content for mobile delivery
」を参照してください。特に、次の節を参照してください。
• Playing video on mobile devices
• Code samples
これらの節には、モバイルデバイス用のビデオプレーヤーの開発に関して、次のような情報が記載されています。