0

サーバー側で作成されたsharedObject内にすべてのユーザーを保存しようとしているので、すべてのユーザーがすべてのオンラインユーザーの同期リストを取得します。

サーバー側でsharedObjectを正しく作成したと思いますが、フラッシュアプ​​リケーションでsharedObjectを「見つける」ことができません。

Java Red5アプリケーションクラス内:

ISharedObject userList; 

public boolean connect(IConnection conn, IScope scope, Object[] params) 
{     
    if(userList == null)
    {
        createSharedObject(scope, "userList", false);
        userList = getSharedObject(scope, "userList");
    }

    userList.setAttribute( "user", "some name" );

    return true;
}

FlashsharedObjectは次のようになります。

private var _userSO:SharedObject;

private function initUserSO() // I call this function when I get a netConnection
{
    _userSO = SharedObject.getRemote("userList", this.uri, false); 
    _userSO.addEventListener(SyncEvent.SYNC,syncUsers);
    _userSO.connect(this); // this = netconnection
}

private function syncUsers(e:SyncEvent):void
{
    MonsterDebugger.trace('userManager',_userSO.data);
}

しかし、_userSOはサーバー上でsharedObjectを見つけていないようです。

4

1 に答える 1

0

sharedObject 内にデータを保存する代わりに、以下の行を使用して as3 スクリプトを実行できることがわかりました。

ServiceUtils.invokeOnAllConnections(room, "my_as3_function", userList);
于 2009-11-23T13:59:15.157 に答える