Actionscript3.0になってから初めてPHPとやりとりすることがあったので簡単にメモ。
PHPからの戻りを受け取る場合
URLRequest,URLLoader,URLVariablesを絡めて
var urlRequest:URLRequest = new URLRequest( "XXX.php" );
var urlVariables:URLVariables = new URLVariables();
var urlLoader:URLLoader;
function onClickHandler( e:MouseEvent ):void{
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = urlVariables;
urlLoader = new URLLoader( urlRequest );
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
urlLoader.load( urlRequest );
urlLoader.addEventListener( Event.COMPLETE, onDataComplete);
}
function onDataComplete( e:Event ):void{
var v:URLVariables = new URLVariables( e.target.data );
}
URLVariablesにデータを格納
URLRequest.dataにURLVariablesを指定
URLLoaderでURLRequestをload(なぜかload)
URLLoaderのEvent.COMPLETEをトリガーにして戻りを受け取り
みたいな流れ。
PHPに値を投げて戻りを受け取らない場合
データを投げた後、そのままPHPに画面遷移する場合はURLLoaderは必要なく
var urlRequest:URLRequest = new URLRequest( "XXX.php" );
var urlVariables:URLVariables = new URLVariables();
function onClickHandler( e:MouseEvent ):void{
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = urlVariables;
navigateToURL( urlRequest, "_self" );
}
URLVariablesにデータを格納
URLRequest.dataにURLVariablesを指定
navigateToURLでURLRequestにページ遷移
な流れ。
AS2のgetURLではデフォルトでは同一画面で遷移してたはずだけど、AS3のnavigateToURLでは新規で立ち上がるようになってたんだ。
ついでに、POSTで渡った変数とその値をPHP側で確認する記述。
<?php
$q = "";
foreach( $_POST as $key => $value ){
$q .= $key . " : " . $value . "<br />";
}
echo $q;
?>