2002/07/10
FACEs Connector (version 0.03) について
- 概要
FACEs Connector は、FACEsサーバとのやり取りをコンポーネント化することによって、XMLSocket接続に関する煩雑な手続きを簡便化しようという試みです。ユーザーはXMLをほとんど意識することなく、FACEsサーバとのやり取りを実現することができます。今回、FlashMXコンポーネントの有益性の検証も含めて制作しました。まだまだ不完全ですが、不具合、洗練の余地があれば教えていただければ幸いです。 - サンプル
- flaファイル(zip形式)
- 更新履歴
ver 0.03 (2002.09/02) :
- registFuncを2度以上登録すると、前回の登録が全て消されてしまうバグの修正
- 内部コードの整理、簡潔化
- FACEsConnector.send_t()ファンクションの追加
- registFunc時のオプション設定により、ネストされたXMLも引数として渡せるようになった。
- 使い方
- コンポーネントパラメータ設定
ライブラリ上のFACEsConnectorをステージ上に配置します。ステージ上のFACEsConnectorに適当なインスタンス名をつけます。コンポーネントパラメータを設定します。- サーバ名
FACEsサーバのアドレス - ポート番号
FACEsサーバのポート番号 - コンテンツ名
FACEs上でデータを共有する場所の名前 - traceモニター
MX上でプレビューするときに、XMLの流れをtraceするかしないか
- サーバ名
- ノードネームに対応するファンクションの設定
- FACEsサーバからXMLが返されたとき、FACEsConnectorはXMLのノードネームに対応するファンクションを実行します。ここでは、そのファンクションを定義します。
function funcName(attr){}
ノードネームに対応させたいファンクションを定義します。attrにはノード内の要素名:要素がObjectオブジェクトで渡されます。FACEsConnector.registFunc()で設定することでattrにXMLオブジェクト自体を渡すことも出来ます。 - XMLのノードネームと、それに対応して実行するファンクション名を関連づけてFACEsConnectorに登録ます。
funcset = {
nodeName : "funcName" ,
nodeName : [ "funcName" , boolean ] ,
...
}
FACEsConnector.registfunc(funcset,funcPath);
nodeNameにノードネームを、funcNameに対応するファンクション名を設定してください。funcNameは文字列です。ファンクションに渡す引数をXMLobjectにする時はnodeNameの値を配列で指定して、2つ目のパラメータにtrueを指定してください。ネストされたXMLを扱いたい場合などに指定してください。ファンクションに対してXMLの要素のみをobjectとして渡す場合は、falseを指定するか、もしくは配列で指定せずfuncNameのみを指定してください。funcPathは、funcNameのあるレベルのパスです。registFunc()するパスとfuncNameのパスが同一の場合は、funcPathはthisです。
- FACEsサーバからXMLが返されたとき、FACEsConnectorはXMLのノードネームに対応するファンクションを実行します。ここでは、そのファンクションを定義します。
- 接続
FACEsConnector.connect();
コンポーネントパラメータで設定した値をもとに、FACEsサーバに接続し、さらにコンテンツ名で共通の部屋に接続します。共通の部屋に接続すると、ノードネーム'N'が返されるので、registFuncするファンクションは、実際にはかならず'N'を処理するものが必要となるでしょう。
- コンポーネントパラメータ設定
- その他のファンクション
- FACEsConnector.send(nodeName[,attr])
FACEsにデータを送ります。nodeNameはXMLのノードネーム、attrにはXMLの要素で、要素名:要素の値をセットにしたObjectオブジェクトを指定します。 - FACEsConnector.send_t(str)
FACEsConnectorに、データを送ります。引数はXMLテキストで渡します。FACEsConnector.send()と違い、ObjectをXMLに書き直す処理を省くため、高速に処理されます。処理速度が重視される場合や、単純にXMLで書いた方が簡単な場合、ネストされた複雑なXMLを送信する場合は、こちらを利用してください。 - FACEsConnector.send(nodeName[,attr])
- FACEsConnector.removeFunc(nodeName)
ノードネームと対応するファンクションの関連を削除します。nodeNameに関連を削除したいノードネームを指定します。nodeNameに"ALL"を指定すると、すべての関連が削除されます。 - FACEsConnector.close()
FACEsサーバから切断します。