[as3]flashで外部phpの読み込み

このQ&Aのポイント
  • Flash上のダイナミックテキストに外部phpから取得した値を表示する方法を教えてください。
  • 現在、外部phpファイルから取得した値をechoで表示していますが、Flash上で表示させることができません。
  • as3でURLLoaderを使用し、外部phpファイルをロードして値を取得する方法について詳しく教えてください。
回答を見る
  • ベストアンサー

[as3]flashで外部phpの読み込み

外部phpを読み込みechoで表示した値をFlash上のダイナミックテキストに表示させたいのですが、どうしても上手くいきません。 ■現状は以下のようになっています。 ・外部phpファイルにはechoにて、contents=******************** という出力結果がでます。 ・ダイナミックテキストを作りダイナミックテキスト名がname_strになっています。 ・as3のルートの1フレーム目に以下のようにasを書いています。 import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLVariables; import flash.events.Event; // [2] URLLoaderとURLRequestインスタンスの生成 var myLoader:URLLoader = new URLLoader(); var myRequest:URLRequest = new URLRequest("http://localhost.*******.php"); // [3] ロード完了時の処理をイベントリスナーに登録 myLoader.addEventListener(Event.COMPLETE, onComplete); // [4] 外部テキストファイルのロード実行 myLoader.load(myRequest); // [5] リスナー関数の定義 function onComplete (eventObject:Event) { var my_str:String = eventObject.target.data var myVars:URLVariables = new URLVariables(my_str); for (var name_str:String in myVars){ trace([name_str, myVars[name_str]]); } } ・環境はxamppにてローカルで作業をしています。 初心者でとんちんかんなことをしていまっているかもしれませんが、何卒よろしくお願い致します。

  • Flash
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • an631
  • ベストアンサー率82% (28/34)
回答No.3

********************だけ表示したい場合は下記のようにしてください。 for (var str:String in myVars) { name_str.appendText(myVars[str]); }

omisosam
質問者

お礼

誠に有難うございました!

その他の回答 (2)

  • an631
  • ベストアンサー率82% (28/34)
回答No.2

for (var str:String in myVars) { name_str.appendText(str+","+myVars[str]+"\n"); } 先程の3行では動きますがwarningが出てしまいますね。 失礼しました。 今回の物に置き換えてください。

omisosam
質問者

お礼

ありがとございました! 本当に助かりました! ちなみに、contents=を表示から外す場合はどの様にしたらよろしいでしょうか? 現在 contents. ******************** と表記されます。 ご回答いただいた上に、不躾とは存じますが、ご解答いただければ幸いです。

  • an631
  • ベストアンサー率82% (28/34)
回答No.1

phpからcontents=********************のデータを flashに読み込む所までは正常に動いています。 あとはどう出力するかの問題だけです。 現状は下記3行を使ってtraceで出力しています。 (flashの出力パネルに表示されているはずです) for (var name_str:String in myVars) { trace([name_str, myVars[name_str]]); } この3行を下記の3行に置き換えるとname_strテキストボックスに表示されます。 for (var str:String in myVars) { name_str.text += str+","+myVars[str]+"\n"; }

関連するQ&A

  • [AS3]テキストファイルの存在確認

    今、テキストファイルを外部から読み込んでその内容を表示するフラッシュをactionscript3.0で作っています。 ソースは以下のように、 import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLVariables; import flash.events.Event; var myLoader:URLLoader = new URLLoader(); var myRequest:URLRequest = new URLRequest("data.txt"); myLoader.addEventListener(Event.COMPLETE, onComplete); myLoader.load(myRequest); function onComplete (eventObject:Event) { var my_str:String = eventObject.target.data mytextfield.text=my_str } というう風にしているのですが、テキストファイルがサーバー上に存在しないと、このアドレスは存在しないといわれエラーを吐き出すのでファイルが存在するか確認してから、読み込みたいのですが何か良い方法はないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • AS3で外部サーバのPHPに値が送れない。

    AS3で外部サーバにあるPHPへ値を送ろうとしているのですが、 うまく行きません。 同じサーバ内でのテストは正常に行えましたので、スクリプトに間違いは ないと思うのですが、外部サーバには値を送れない仕様なのでしょうか。 - - - var scriptRequest:URLRequest = new URLRequest("http://www.xxxxxxxx.jp/insert.php"); var variables:URLVariables = new URLVariables(); var scriptLoader:URLLoader = new URLLoader(); variables.page = test1_TB.text; variables.dated = test2_TB.text; scriptRequest.data = variables; scriptRequest.method = URLRequestMethod.GET;

    • ベストアンサー
    • Flash
  • 【AS3.0】外部テキストから配列を読み込む

    fla→PHPに変数・配列のデータを送り、 下記のようなテキストデータを.txtファイルに出力するものを作りました。 var1=1&var2=0&array1=1,2,3&array2=1,2,3,4&array3=1,2,3,4,5 送られた変数・配列はすべて連なっており、&で区切られています。 変数を読み込むには下記で出来るようですが、 参考URL:http://ninotk.oops.jp/weblog/?p=30 private var filePath:String = "topics.txt"; private var tpcLoader:URLLoader; init(); function init(){ tpcLoader = new URLLoader(); tpcLoader.dataFormat = URLLoaderDataFormat.VARIABLES; tpcLoader.addEventListener(Event.COMPLETE,onComplete); tpcLoader.load(new URLRequest(filePath)); } private function onComplete(evt:Event):void{ var src:String = evt.target.data; var vars:URLVariables = new URLVariables(src); contents.topics._date.text = vars.date; contents.topics._txt.text = vars.news; } 配列を読み込む手順がどうしても分かりませんでした... さらに上記のような変数・配列混合での読み込みは可能でしょうか。 もし不可能のようでしたら、変数のみのtxtと配列のみのtxtとで分けての出力も可能です。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • PHPの取得情報をFlashで表示する方法

    flashについて質問です。 time.phpに現在の時間を取得する <?php echo date("Y/m/d"); ?> を書いて保存し、 それをtimeLoad.as(AS 3.0)をドキュメントクラスとするflash上で表示したいのですが、 package{ import flash.display.MovieClip; import flash.text.TextField; import flash.text.Font; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLVariables; public class timeLoad extends Sprite{ private var tf:TextField; public function timeLoad():void{ var myRequest:URLRequest = new URLRequest("time.php"); var myLoader:URLLoader = new URLLoader(); myLoader.load(myRequest); tf = new TextField(); tf.defaultTextFormat = new TextFormat("Helvetica",10,0x000000); tf.x = 0; tf.y = 0; tf.text = myLoader.data; addChild(tf); } } } tfの内容が2011.1.1などになるのが目的です。 swfファイル、swfを埋め込んだhtmlファイル、phpファイルは同じ階層にあります。 php側flash側の訂正点をご指摘いただけると嬉しいです。

    • ベストアンサー
    • Flash
  • phpとflash

    プログラム初心者です phpとas3で送受信したいです。 flash→php→flashの流れで変数を送受信させようと思います しかし、送受信はできているのですが、日本語だけが文字化けします うまくいけば。「こんにちわほげabc55」になるはずなんですが flashで表示されるのは「こんにちわق°abc55」とphpで加えた日本語が文字化けしています flashからpostされた日本語「こんにちわ」は文字化けしないで、flash→php→flashまで返ってきています flash cs5 のデフォルトの文字コードはUTF-8です phpファイルの文字コードはUTF-8でファイルを保存しています よろしくお願いします PHP <?php $comment = $_POST['com']; $comptxt = $comment."ほげabc55"; echo "comp=" . $comptxt; ?> AS3 var request:URLRequest = new URLRequest ( "test.php" ); //PHPへPOST送信 request.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables(); //↓送る変数 variables.com = "こんにちは"; request.data = variables; var loader:URLLoader = new URLLoader (request); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE, onComplete); loader.load(request); function onComplete (event:Event):void{ //↓戻り値を変数に格納 var vars:URLVariables = new URLVariables( event.target.data ); t1.text=vars.comp; }

    • ベストアンサー
    • PHP
  • ActionScript3.0によるPHPへの変数の送信について

    はじめまして。 現在、FlashとPHPを用いたシステムを制作中なのですが、FlashからPHPへの変数の送信でつまづきました。 ネット上で調べてみてもAS3で解説しているサイトはほとんど見つからず、見つかっても自分の理解が悪いのかうまく行かない状況です。 状況としては下記のようなAS3とPHPを実行しています。 AS3から値をPOSTしてPHPで表示、それを読み取ってFlashでtraceしています。traceで1234は返ってきているのですが、PHP側ではcomp=しか表示されません。初歩的なミスだと思いますが、どこが悪いのかアドバイスいただければ幸いです。 よろしくお願いします。 環境 Flash CS3 Apache2.2 PHP5.2.6 ソース AS3 System.useCodePage = true; var request:URLRequest = new URLRequest ( "http://localhost/sample/FlashToPHP.php" ); //PHPへPOST送信 request.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables(); //送る変数 variables.num = "1234"; request.data = variables; var loader:URLLoader = new URLLoader (request); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE, onComplete); loader.load(request); function onComplete (event:Event):void{ var vars:URLVariables = new URLVariables( event.target.data ); trace( vars.comp ); } PHP <?php //変数を受け取る $comment = $_POST['num']; $comp = $comment; echo "comp=".$comp; ?>

    • ベストアンサー
    • Flash
  • 外部テキストから変数の取得(読み込みは成功)

    外部テキストから変数の取得(読み込みは成功) Flash CS5Proの体験版を使っています。 外部テキストから変数を取得したいのですが、呼び出すことが出来ずに困っています。 このように書いたのですが・・・ var varLoader:URLLoader = new URLLoader(); varLoader.dataFormat = URLLoaderDataFormat.VARIABLES; var url:URLRequest=new URLRequest("num.txt");//テキストにはm=50とだけ書いてあります varLoader.addEventListener(Event.COMPLETE, var_loadcomp); varLoader.load(url); // 外部テキストのロード完了 function var_loadcomp(e:Event) { var img_n:URLVariables = e.target.data; trace(img_n.m);//結果:40 } trace(img_n.m);//結果:未定義のプロパティ img_n へのアクセスです。 ここで取得するにはどのようにすればよいのでしょうか・・・。 未定義のプロパティという事なので、一度flash側で変数fを用意して、そこに代入してみましたが、その結果はNaN、代入できていませんでした。 初歩的なことですみませんが、回答よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 外部txtファイルからの変数のロード

    ほぼ独学でフラッシュを始めることになりました。手始めに教科書に載っている外部ファイルから変数をロードするサンプルプログラムを実践してみようとしているのですが、以下の内容でムービープレビューをすると 1120 未定義のプロパティdate_txt.text へのアクセスです 1120 未定義のプロパティweather_txt へのアクセスです 1120 未定義のプロパティcomment_txt へのアクセスです とエラーが3つ表示されます。 作業環境:Flash CS3/WinVista/AS3.0 ※フラッシュ「p166.fla」内容 ステージ上にダイナミックテキスト「date」「weather」「comment」設置 ※「p166.fla」アクションスクリプト import flash.net.URLRequest; import flash.net.URLLoader; flash.net.URLLoaderDataFormat; flash.net.URLVariables; flash.events.Event; var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE,completeHandler); loader.load(new URLRequest("data.txt")); function completeHandler(event:Event):void{ var vars:URLVariables = event.target.data; date_txt.text = vars.date; weather_txt.text = vars.weather; comment_txt.text = vars.comment; } ※外部txtファイル「data.txt」内容 date=5月24日&weather=晴れ&comment=今日は買い物に行きました 大変お手数ですがご指導お願いします。

    • ベストアンサー
    • Flash
  • 【AS3.0 変数をPHPにPOSTする方法】

    【AS3.0 変数をPHPにPOSTする方法】 開発環境:WinXP ADOBE CS4 ActionScript3.0 すいません。教えてください。 Flashで得た複数の値を外部ファイルに出力したいと考えています。 例えば、btnA・btnB・btnCという3つのボタンがあり、 ボタンをクリックすると、クリック数がカウンターになり、 その値をPHPファイルにPostしたいと考えています。 現在のソース(btnAのみ) ---------------------------------------------------------------- var req:URLRequest = new URLRequest ("http:++++++.php"); req.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables(); //送信パラメータ variables.num01 = 0; req.data = variables; var loader:URLLoader = new URLLoader (req); var are01=0 var num01=0 a_btn.addEventListener(MouseEvent.CLICK,aClick); function aClick(event:MouseEvent):void{ var num01=are01++ trace(num01) var printdata:URLVariables = new URLVariables(event.target.data); loader.load(req); } -------------------------------------------------------------- num01の数値がトレースはされているのですが、 phpの値に代入されません。 --------------------------------------------------------------- phpソース $comment = $_POST['num01']; print "rData=" . $comment;</body> ---------------------------------------------------------------- 同時に複数の値・仮にnum02・num03も同様にPHPにPOSTしたいと考えているのですが、 その際の方法がわかりません。 恐れ入りますが、ヒントだけでもよいので教えていただけないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • AS3 Flash 外部テキストの取得

    いつもお世話になっております。 AS3で外部テキストの取得をしてるのですが、どうもうまくいきません。 以下コードです --------------------------------------------------------------- function init02(event:Event):void { var urlReq02:URLRequest=new URLRequest("C:/swf_xsplit/twitter.txt"); var txtloader02:URLLoader = new URLLoader(); txtloader02.load(urlReq02); if (txtloader02.data!=null) { var twitterStr02:String=txtloader02.data; var lines:String=twitterStr02; lines=lines.replace("\r\n"," ").replace("\n"," ").replace("\r"," ").replace("<br>"," ").replace("< /br>"," "); subStrNew=lines; trace("timer = " + lines); if (subStrOld!=subStrNew) { myTimer.stop(); subStrOld = subStrNew; if (mc_1.x >= stage.stageWidth) { this.mc_1.addEventListener(Event.ENTER_FRAME,move_hidari); } } } } ---------------------------------------------------- このinit02()は2秒おきにタイマーで呼び出しております、 処理としては、テキストの値が変わったらイベントを投げる処理です。 URLLoaderをメソッドの外に(メンバ変数)にするとテキストを取得出来ますが、 毎回、同じ内容になってしまいます。 URLLoaderをメソッドの中(上記のコード)に入れると dataがUndifineで帰ってきてしまいます。 お忙しいとは存じますが、有識者の方、何卒、ご指導お願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう