ADOBE®   MEDIA SERVER 5.0.3

デベロッパーズガイド


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

 

注意

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

 

SharedBall サンプル

 

SharedBallサンプルでは、一時リモート共有オブジェクトを作成します。このサンプルは、マルチプレイヤーゲームに似ています。1 人のユーザーがボールを移動すると、他のすべてのユーザーのボールも移動されます。

注意Adobe Media Server のルートインストールディレクトリ内の documentation/samples/SharedBall ディレクトリに含まれている SharedBallのサンプルファイルSharedBall.flaSharedBall.asSharedBall.swf)をご利用ください。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Flash Player で実行中の SharedBall アプリケーション

 

アプリケーションの実行

 次の場所に SharedBall という名前のアプリケーションディレクトリを作成して、サーバーにアプリケーションを登録します。

RootInstall/applications/SharedBall

 

2   Adobe Media Server のルートインストールディレクトリ内の documentation/samples/SharedBall ディレクトリに含まれている SharedBallのサンプルファイルを開きます。

3   Web ブラウザーで SharedBall.swf を開きます。

 ブラウザーウィンドウをもう 1 つ起動し、SharedBall.swf 2 番目のインスタンスを開きます。

 一方のウィンドウでボールを移動し、もう一方のウィンドウでボールの動きを観察します。

 

ユーザーインターフェイスを定義します

1    Flash で、ファイル/新規/ Flash ファイル(ActionScript 3.0)を選択しOK」をクリックします。

 ツールボックスから矩形ツールを選択します。右下方向にドラッグして、次に、楕円ツールを選択します。

 ステージ上に円を描画します。好きな色で塗り潰します。

 円をダブルクリックし、修正/シンボルに変換を選択します。

 シンボルに変換ダイアログボックスで、シンボルに ball という名前を付け「ムービークリップ」が選択されていることを確認してOK」をクリックします。

 ステージ上で ball シンボルを選択し、プロパティインスペクター(ウィンドウ/プロパティを選択)で、このシンボルに「sharedBall」というインスタンス名を付けます。

7    SharedBall.fla という名前を付けてこのファイルを保存します。

 

クライアントサイドコードの記述

サンプルファイルの SharedBall.as を参照してください。ここでの手順は、主要部分のみを示しています。

1    Flash Professional で、新しい ActionScript ファイルを作成します。

2    MovieClip を拡張するクラスを作成します。

 

public class SharedBall extends MovieClip {...}

 

FLA ファイル内のsharedBall シンボルはムービークリップシンボルなので、このクラスは MovieClip を拡張する必要があります。

 コンストラクターを作成します。コンストラクターにイベントリスナーを追加し、サーバーに接続します。

 

public function SharedBall()

{

nc = new NetConnection();

addEventListeners();

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

}

4  netStatusmouseDownmouseUpmouseMoveの各イベントのイベントリスナーを追加します。

 

private function addEventListeners() {

nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

// sharedBall is defined in the FLA file

sharedBall.addEventListener(MouseEvent.MOUSE_DOWN, pickup);

sharedBall.addEventListener(MouseEvent.MOUSE_UP, place);

sharedBall.addEventListener(MouseEvent.MOUSE_MOVE, moveIt);

}

 

5    netStatusのハンドラー内で正しく接続されたときにリモート共有オブジェクトを作成します (サンプル ASファイルに記述されているように、接続が拒否された場合や失敗した場合のためのエラーハンドラーを必要に応じて作成します。共有オブジェクトに接続しsyncイベントリスナーを追加します。

 

switch (event.info.code)

{

case "NetConnection.Connect.Success":

trace("Congratulations! you're connected");

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

so.connect(nc);

so.addEventListener(SyncEvent.SYNC, syncHandler);

break;

...

}

 

 ユーザーがマウスを移動したときにsetProperty() を使用して、ボールの位置の変更をリモート共有オブジェクトに設定します。

function moveIt( event:MouseEvent ):void {

if( so != null )

{

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

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

}

}

リモート共有オブジェクトが更新されると、そのリモート共有オブジェクトは syncイベントをディスパッチします。

 すべてのクライアントの新しいボールの位置を更新するための syncイベントハンドラーを記述します。

 

private function syncHandler(event:SyncEvent):void {

sharedBall.x = so.data.x;

sharedBall.y = so.data.y;

}

so.data に書き込むことはできませんが、so.dataの値を読み取ることはできます。

 

 

 

最終更新日 2013/9/30