ADOBE®   MEDIA SERVER 5.0.3

デベロッパーズガイド


翻訳:株式会社サムライズ

 

注意

Adobe Media Server® バージョン 5についての本ドキュメントは第三者によって翻訳されたものであり、Adobe Systems Incorporated(アドビ システムズ社)は本翻訳物の正確性や完全性を査閲していません。

 

リモート共有オブジェクト

 

リモート共有オブジェクトを作成する前に、NetConnectionオブジェクトを作成してサーバーに接続します。接続されると、SharedObjectクラスのメソッドを使用して、リモート共有オブジェクトの作成や更新を行うことができるようになります。以下に、リモート共有オブジェクトを使用する際の一般的な手順を示します。

1    NetConnection オブジェクトを作成してサーバーに接続します。

nc = new NetConnection();

nc.connect("rtmp://localhost/SharedBall");

これは、サーバーに接続する最も簡単な方法です。実際のアプリケーションでは、NetConnectionオブジェクトにイベントリスナーを追加したり、イベントハンドラーのメソッドを定義したりする作業が必要になる場合があります。詳細については、「SharedBall サンプル」を参照してください。

 

2     リモート共有オブジェクトを作成します。正しく接続された場合はSharedObject.getRemote()を呼び出してサーバー上にリモート共有オブジェクトを作成します。

 

so = SharedObject.getRemote("ballPosition", nc.uri, false);

 

最初のパラメーターはリモート共有オブジェクトの名前です2 番目のパラメーターは接続先のアプリケーションの URIです。この URINetConnection.connect()メソッドで使用した URIと同じものである必要があります。URIを指定する最も簡単な方法はnc.uriプロパティを使用する方法です。3番目のパラメーターは、リモート共有オブジェクトが永続であるかどうかを指定します。この場合falseを選択すると、一時共有オブジェクトになります。

3    リモート共有オブジェクトに接続します。共有オブジェクトが作成された場合は、前の手順で作成し NetConnection オブジェクトを使用して、クライアントを共有オブジェクトに接続します。

 

so.connect(nc);

 

共有オブジェクトによってディスパッチされる syncイベントを処理するためのイベントリスナーを追加することも必要です。

 

so.addEventListener(SyncEvent.SYNC, syncHandler);

 

 リモート共有オブジェクトとクライアントを同期します。リモート共有オブジェクトの同期には、2 つの手順が必要です。最初に、個々のクライアントが変更を行うとき、またはデータ値を設定するときに、リモート共有オブジェクトを更新する必要があります。次に、リモート共有オブジェクトに接続している他のすべてのクライアントを更新します。

 クライアントが変更を行っている時にリモート共有オブジェクトを更新するにはsetProperty() を使用します。

so.setProperty("x", sharedBall.x);

 

共有オブジェクト内の値を更新するにはsetProperty() を使用する必要があります。リモート共有オブジェクトには、属性と値が格納される data プロパティがあります。ただし、ActionScript 3.0 では、次のように値を直接書き込むことはできません。

 

so.data.x = sharedBall.x; // you can't do this

 

 共有オブジェクトが更新されると、その共有オブジェクトは syncイベントをディスパッチします。他のクライアントで変更を同期するには、共有オブジェクトの dataプロパティの値を読み取ります。

 

sharedBall.x = so.data.x;

 

この処理は、通常は sync イベントハンドラー内で実行されます。「SharedBall サンプル」にその例が示されています。

 

 

 

最終更新日 2013/9/30