今回は、flash.net パッケージの関数2つを紹介します。
navigateToURL() 関数
AS3 アプリケーションからもう一つブラウザのウインドウを開きたい、あるいは今 AS3 アプリケーションを実行中のウインドウを他の HTML コンテンツで置き換えたいというときには navigateToURL() 関数 (livedocs@lab) を使います。以下が関数の定義です。
public function navigateToURL(request:URLRequest, window:String = null):void
1つめの引数には URLRequest オブジェクトを指定します。このオブジェクトには URLLoader クラスの記事内の例と同様に、リクエスト先の URL やヘッダ情報それから送信するデータと送信方法等を指定します。
2つ目の引数にはリクエストの結果を受信するウインドウを指定します。こちらはデフォルト値が定義されているため省略が可能です。省略した場合には新しいウインドウが開かれます。つまり "_blank" を指定したのと同等の結果になります。
下のサンプルでは navigateToURL() の第二引数を "_self" にしていますので AS3 アプリケーションを実行しているウインドウ自身のコンテンツを置き換えます。
import flash.net.navigateToURL; var myVars:URLVariables = new URLVariables(); myVars.currentTime = new Date().getTime(); myVars.city = "Tokyo"; var myReq:URLRequest = new URLRequest(); myReq.url = "http://www.sample.com/weather"; myReq.data = myVars; // 現在のウインドウのコンテンツを置き換える navigateToURL(myReq, "_self");
navigateToURL() 関数を使うにはクラスを使用するときと同じ様にインポートします。
sendToURL() 関数
AS3 アプリケーションからサーバーにデータを送りたい、けれど結果は無視したいというときには sendToURL() 関数 (livedocs@lab) を使用します。使い方は上で紹介した navigateToURL() 関数とほぼ同じです。違いは2つ目の引数がないことくらいです。
public function sendToURL(request:URLRequest):void
あまり芸がないのですが、一応サンプルも。
import flash.net.sendToURL; var myVars:URLVariables = new URLVariables(); myVars.user = "foo"; myVars.data = "hello"; var myReq:URLRequest = new URLRequest(); myReq.url = "http://www.sample.com/post"; myReq.data = myVars; myReq.method = URLRequestMethod.POST; // サーバーにデータを送信 sendToURL(myReq);