1. 基本的な通信プロセス
図 1 SWF+XML とサーバー間の通信プロセスの概略図 クリックして画像を拡大します
。 図 1 は、この例の通信プロセスの概略図を示しています。 Flash とデータベースの間で情報を受け渡すサーバー側スクリプトは、XML 形式でデータの読み取りと書き込みを行います。
ActionScript を使用して、SWF ファイルに収集された情報を XML オブジェクトに変換し、そのデータを XML ドキュメントとしてサーバー側スクリプトに送信できます。 ActionScript を使用して、サーバーから返された XML ドキュメントを XML オブジェクトにロードし、SWF ファイルで使用することもできます。この例では、関連する XML データの保存がサーバーのスクリプト プログラムによって実行されます。これがこの例の焦点でもあります。
2. フラッシュと ASP 間の通信方法
フラッシュと ASP の間ではさまざまな通信方法が使用できます。この例では、LoadVars オブジェクトが使用されます。
LoadVars は、POST メソッドを使用して変数をサーバーに送信する方法を提供します。
3. サーバー スクリプト
サーバー スクリプトはさまざまなプログラムで作成できます。この例では、関連するスクリプトを作成する例として ASP が使用されています。
Microsoft Active Server Pages (ASP) は、動的で対話型の Web サーバー アプリケーションを作成および実行できるサーバー側のスクリプト環境です。
スクリプトは、関連するスクリプト言語を使用して記述されます。スクリプト言語は、HTML と Java、C++、Visual Basic などのプログラミング言語の中間に位置します。 HTML は、テキストのフォーマットや Web ページへのリンクによく使用されます。プログラミング言語は、複雑な一連の命令をコンピューターに送信するためによく使用されます。スクリプト言語を使用してコンピュータに命令を送信することもできますが、その構文と規則はコンパイル可能なプログラミング言語ほど厳密で複雑ではありません。スクリプト言語は主に、テキストの書式設定や、プログラミング言語で記述されたコンパイル済みコンポーネントの使用に使用されます。
ASP を使用すると、Web 開発者は複数のスクリプト言語で完全なプロセスを作成できます。実際、単一の .asp ファイル内で複数のスクリプト言語を使用できます。
対応するスクリプト エンジンが Web サーバーにインストールされている任意のスクリプト言語を使用できます。通常は VBScript と JavaScript の 2 つの言語が使用されますが、ASP のデフォルトのスクリプト言語は VBScript です。この例では、VBScript を使用してスクリプトを作成します。
以下に具体的な制作例を見てみましょう。
制作例:
1.フラッシュ側
まず、次のインターフェイスを作成します。この例では、場所の名前に加えて、いくつかの基本的な情報が追加されているため、ここでは繰り返しません。最終的に、保存する必要があるコードは文字列変数 SendData_srt に割り当てられます。
図 2 SWF ファイル インターフェイス 1
クリックすると大きな画像が表示されます
図 3 SWF ファイル インターフェイス 2 は、
Link という名前の変数を使用してサーバーからのメッセージを受け入れます。値が 1 の場合、サーバーとの通信接続が成功したことを示します。使用
LoadVars を選択し、sendAndLoad メソッドを使用して LoadVars エンティティの下にデータを送信します。
タイムラインの「アクション」パネルを開き、次の ActionScript コードを入力します。
function SendData():Void { //データを送信する関数を定義します var SendData = new LoadVars(); //新しい LoadVars オブジェクトを構築します SendData.Check = 1; //SendData データを検証するためのサーバーの Check アクションを設定します 。 = SendData_srt; //送信するデータ変数 SendData_srt をデータに代入します。 input_txt.text = "お待ちください..." //ステータス テキストは「お待ちください...」と表示されます。 SendData.onLoad = function(success); { //サーバーとの接続を検証する関数 if (success) { //サーバーとの接続が成功した場合 if (this.Link== "1") { //検証アクションが成功した場合 output_txt.text = "正常にマークされました! レビュー後有効です。 "; //ステータス テキストは成功として表示されます } } else { output_txt.text = "サーバーが ビジーです。後でもう一度お試しください! "; 、失敗メッセージが返されます } }; SendData.sendAndLoad( "http://www.wanggesz.com/XMLData/Save.asp", SendData, "post"); // ポスト モードで保存するデータを送信します } |
次の内容の ASP ファイルを作成します。
<%@Language="VBScript"%> <% Dim Check 'SWF ファイルのデータを検証するための Check 変数を定義します Dim Link 'Define通信が成功したことを示すために SWF ファイルに戻るために使用される Link 変数 Dim data 'SWF ファイルから保存するデータを受け取るデータ変数を定義します set data = Request.Form("data") '保存するデータを受け取りますSWF ファイルから保存 set Check = Request.Form("Check") 'SWF ファイルのデータを検証します if Check = 1 then 'SWF ファイルの ID が正しい場合 Link = 1 'リンク値を 1 に設定します。通信は成功しました End if 'if ステートメントを終了します xml.Async=False xml.ValidateOnParse=False xml.Load(server.mapPath("http://www.wanggesz.com/XMLData/data.xml")) set newNode=mxml.createNode ("要素", "データ", "") root.appendChild(newNode) という名前を付けます。
objname = mxml.createAttribute("data") xml.save(server.mapPath("http://www.wanggesz.com/XMLData/data.xml") ) %> |
このようにして、地図操作、地名注釈などの機能が順番に完成しましたが、地図を利用する過程において、地名を検索や測位に利用することも不可欠な共通機能です。