1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
package { import flash.net.URLRequest; import flash.net.URLVariables; import flash.net.URLRequestMethod import flash.net.navigateToURL; public class ToPHP { public function ToPHP() { // constructor code } /* flashVars:Object 受信オブジェクト rejectKeys:Array 受信オブジェクトの中の送信対象外Keyの文字列の配列 ansObj:Object 回答データオブジェクト targetPHP:String 送信先URL(デフォルト値:"index.php") ※ローカル確認フラグとしてflashVars["local"]に値を入れていると処理をスキップする */ public static function go(flashVars:Object, rejectKeys:Array, ansObj:Object, targetPHP:String="index.php"):void { if(!flashVars["local"]){ // 送信用リクエスト var req:URLRequest = new URLRequest(targetPHP); // 送信データ var variable:URLVariables = new URLVariables(); // 回答データを作成 for(var anskey:String in ansObj){ variable[anskey] = ansObj[anskey]; } // 持ち回りデータ var i:uint; var len:uint = rejectKeys.length; var cnt:uint; for(var key:String in flashVars){ cnt = 0; for(i=0;i<len;i++){ if(key != rejectKeys[i]){ cnt++; } if(cnt == len){ variable[key] = flashVars[key]; } } } req.data = variable; req.method = URLRequestMethod.POST; navigateToURL(req,"_self"); } } } } |
ドキュメントのクラスから使うときはこんな感じ(各オブジェクトは定義済みの想定)
1 |
ToPHP.go(flashVars,["qName","cache","faName"],ansObj); |
ドキュメントのクラスにimportが増えると使い回しをしにくくなるので、tweenなんかも外に出そうかと考えているところです。