PHPでMySQL等で取得した値をActionScriptに渡す方法はありますでしょうか?
下記の質問と同じなのですが
回答者のURL先に飛ぶことができませんでした。
http://www.gac.jp/article/index.php?stats=question&id=19159&command=msg
・PHPに処理を渡す箇所
var request:URLRequest = new URLRequest(url);
request.method = URLRequestMethod.POST;
var postdata:URLVariables = new URLVariables();
postdata.test = escapeMultiByte('test22');
request.data = postdata;
var ua:URLLoader = new URLLoader();
ua.addEventListener(Event.COMPLETE, completeListener);
ua.load(request);
遠回りに思えても,今ならおそらくAjax関連(つまりは非同期通信機能)の話にも触れた方が良いかと思われます.
これは結局,
ということを繰り返しているにすぎません.
PHP → MySQLデータ取得 → HTML(or XML) → ActionScript(Javascript)
という流れです.これをブラウザにURIを入れたときの一回だけではなく,イベントハンドラなどで一つのページを閲覧中にも行おうということです.
PHPObjectというものが便利ですよ。
PHPのクラスがActionScript内で使える(ように見える)ものです。
仕事でもPHPとMySQL、Flashを絡ませて使ったことがあります。
■インストール方法
▽下記URLよりMicromedia Extension Managerをインストール
http://www.macromedia.com/jp/exchange/em_download/
▽PHPObjectの配布元(下記URL)の「Download」よりPHPObject.mxpをダウンロードし、Macromedia Extension Managerを通してインストール
http://www.ghostwire.com/go/28]
■使用方法
▽初期設定(PHP)
・PHPObjectの配布元よりDLしたconfig.phpとGateway.phpを公開ディレクトリに設置
・PHPのクラスファイルを適当な場所に配置
・config.phpの設定を適切な形に変更(PHPのクラスファイルの位置など)
▽初期設定(ActionScript)
・メインタイムラインに下記コードを記述
import com.ghostwire.phpobject.*;
PHPObject.defaultGatewayKey = "secret";
PHPObject.defaultGatewayUrl = "Gateway.phpのあるURL";
PHPObject.enableMultiByte = true;
var member = new PHPObject('PHPのクラス名');
member.PHPのメソッド名( );
member.onResult = function(result) {
// 結果取得処理
trace(result[0]['name']);
trace(result[1]['name']);
};
URLはダミーです。
さきほど回答したPHPObjectについての補足です。
RPCするPHPのクラスですが、プロパティにインスタンスを保持することは出来ません。
恐らくですがどっかでシリアライズしてるからだと思われます。
コメント(0件)