PHPからデータをFlashに送る方法

このQ&Aのポイント
  • PHPからデータをFlash(swf)に送る方法について教えてください。
  • 具体的には、PHP側でデータを作成し、ActionScriptで作成したFlashのtarget.swfファイルに渡したいです。
  • しかし、データがtarget.swfファイルに渡らない問題に困っています。解決方法を教えてください。
回答を見る
  • ベストアンサー

PHPからデータをFlash(swf)に送りたいのですが

PHPに下記のように記述し、データを ActionScript で作成したフラッシュのtarget.swfファイルに送ろうとしています。 データがtarget.swfファイルに渡らなくて困っています。教えていただけないでしょうか。 PHP側: $data="sample";********渡したいデータです。***** print" <object-----swfファイル 中略 <parameter name=\"movie\" value=\"target.swf\" ?sendData=$data> 中略 "; swfファイル側: test.text=sendData;*****渡したデータを読み出すものです。***** 環境は、連絡サーバのPHP5とActionScript2を使用しています。 よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

PHP のことはよくわかりませんが, PHP で生成した HTML に SWF を表示させるときに, その SWF に表示させた時のみ,変数を送信したいということでしょうか? それだと, 普通は FlashVars を使います。 「FlashVars を使用して SWF へ変数を渡す」 http://www.adobe.com/jp/support/flash/ts/documents/fl0284.html 送信した後の使い方例は, 私の回答ですが次のURLが参考になりますでしょうか。 「再生するフレームを指定」 http://oshiete1.goo.ne.jp/qa2582387.html  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/qa2582387.html どこに渡されたかなどを把握しておけば,何にでも使えます。 -------------------------------------------------------- ちなみに その SWF に表示させた時のみではなく, SWF 再生中に PHP などから値を送信するときは, PHP からの送信は難しいので, SWF 側から PHP に値を受け取りに行くようにさせます。 「loadVars.sendAndLoad()メソッド。データ送受信」 http://www.1art.jp/flash/le/lesson47/lesson47.htm ご質問内容があまり理解できておりませんので, 見当違いの回答をしていましたら申し訳ございません。

miya2003
質問者

お礼

sassakun様 ありがとうございました。PHPのことはよくわかりませんがとおっしゃられた sassakun様に大変なお手数をおかけいたしました。 補足に書き込んだ件ですが、下記のようにして解決いたしました。 swf側の(1)「send_lv.name1」 の[sample]というデータが変数名の「name1]に格納されて送信され、PHP側の(2)$_POST['name1']で受け取ることができました。 「load_lv.name2」に相当するname2を送信するのはPHP側に下記のような記述をしました。  echo '&name2=.$name2.'&'; 今後もよろしくお願いいたします。 よいお年をお迎えください。

miya2003
質問者

補足

早速のご回答ありがとうございます。 わかりにくい説明で申し訳ありませんでした。 実はご指摘いただいただいた「loadVars.sendAndLoad()メソッド。データ送受信」を使いたくて試行錯誤していましたがloadVars.sendAndLoad()が動作しないので今回の質問になりました。でも、最終目的はPHPとswfとのデータのやり取りです。 教えていただいたサイトを参考にして下記のようにしてみました。 swfファイル側: on (release) { var name1="sample"; var send_lv:LoadVars = new LoadVars(); (1)    send_lv.name1 =name1; var load_lv:LoadVars = new LoadVars(); load_lv.onLoad = function(success) { result = load_lv.name2; }; send_lv.sendAndLoad("test.php", load_lv, "POST"); } PHP側(ファイル名はtest.php): (2) print $_POST['name1'];   print";   <object 中略 ****swf ファイル記述****</object>   "; 私はswf側の(1)「send_lv.name1」 で[sample]というデータが 変数名の「name1]に格納されて送信され、PHP側の(2)$_POST['name1']で受け取られると考えました。 しかし、このデータが表示されませんでした。 また、私はPHP側で「load_lv.name2」に相当するname2を送信する やり方が分かっていません。 PHPの質問のようで恐縮ですが、もしヒントがいただけるようでしたらよろしくお願いしたいのですが。

関連するQ&A

  • FLASH1→PHP→FLASH2 POST送信での受け取り方法。

    FLASH 8の初心者です。 Sample.swfにあるボタンから、PHPを通してSample2.swfに値を送ろうとしています。そこで、送った値を判定して、そのフレームに移動するようにしたいと思っています。 現在はFLASH→PHP→FLASHというのはできるのですが、FLASH1→PHP→FLASH2という方法がわかりません。 ■Sample.swfのボタン A.onPress = function() { SendData = new LoadVars(); //データを送信するための箱。 _root.SendData.nakami1 = "sam"; //送りたいデータを箱に詰める //データ(中身)を詰めた箱をgetFlash.phpに送信 _root.SendData.sendAndLoad("http://localhost/Sample/Sample.php", _root.SendData); //3)getFlashからレスポンスが合った場合(SendDataにデータが帰ってきた時) _root.SendData.onLoad = function() { //受け取ったときの処理 if(this.val){    if(this.val1){ gotoAndPlay(2); } } } } これで、PHPに値を送っています。 <?php //2)Flashからデータを受け取る-Flashで使用した変数名 $test1 = $_POST["nakami1"]; //やりたい処理を書く if($test1 == "sam"){ $test1 = "name"; }else{ $test1 = "error"; } //Flashにデータを送る print "&val=true"; //上の結果を表示の実行。 print "&val1=".$test1; //val1に$test1の値を代入。 ?> この書き方でFLASH→PHP→FLASHはできるのですが、これをどのように変更したらFLASH2へ値を送れるのかわかりません。調べてもどのようにすればいいのかわからないので困っています。 FLASH2のほうではsetInterval文を使って、常にPHPからの送られてくる値を取得しようと思っています。 ★setInterval文 functionvar intervalID:Number=setInterval(getFunc,1000); getFunc(){ getURL("http://localhost/test/Sample.php", "_self", "GET"); if(val== "name"){ gotoAndpPay(2); } } このように書いたのですがどのようにすればPHPからの値を取得できるのかわかりません。このような書き方をしなくてもできるのでしょうか? どんなことでもいいので返事をよろしくお願いします・・・。

  • 時間によってFLASHデータを変える

    時間帯によってFLASHデータが差し変わるようにしたいのですが、よくわかりません。背景画像を変える要領ではダメなのでしょうか?どなたかわかる方ご回答宜しくお願いします。 現在のダメなタグ↓(0~6時までは01.swf、6~18時までは00.swfを表示) <script language="javascript"> <!-- function geth(t){ if (t<=6) document.write("<param name=movie value='01.swf'>"); else { if (t<=18) document.write("<param name=movie value='00.swf'>"); } } //--> </script> <script language="jscript"> <!-- h = new date(); geth(h.getHours()); //--> </script> ***省略*** <!-- URL's used in the movie--> <!-- text used in the movie--> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" name="0" width="755" height="450" align="" id="0"> <param name=movie value="01.swf"> <param name=quality value=autohigh> <param name=wmode value=transparent> <param name=bgcolor value=#66CCFF> <embed src="01.swf" width="755" height="450" align="" quality=autohigh wmode=transparent bgcolor=#66CCFF type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" name="0"></embed> </object>

  • Flash CS4 + ActionScript 3.0 で swf

    Flash CS4 + ActionScript 3.0 で swf ファイルを作成しました。 メインのタイムラインの 1 フレーム目に ActionScript で stop(); を 指定したのですが、swf 単体で再生(Adobe Flash Player 10で再生)して 確認したところでは問題なく 1 フレーム目で停止しますが、 swf を HTML に配置してブラウザで確認したところ、 ロード時にはメインのタイムラインがすべて再生されてしまいます。 これについての対処法はあるのでしょうか? 自分なりの調べて見つけた方法としては、 ↓こんな感じだったのですが、根本解決ではない気がするので、  何か良い方法があれば、教えてください。よろしくお願いします。 ・外部ファイルを読み込むだけの swf を作って、  実際に再生したい swf を UILoader に読み込む ・全部ムービークリップに入れてしまって、  メインのタイムラインには、そのムービークリップだけ配置する

    • ベストアンサー
    • Flash
  • SWFについて

    ホームページに.swfファイルをつけてアップロードしたのですが、Mac環境の方からムービーが見れないとの指摘を受けました。Win環境では見れるのですが、私がMacを持っていないので動作確認が出来ません。・・・が、過去には見れていたそうですし、別サイト(例:日産サンのページ)は見れるそうです。 判りにくい質問かもしれませんが、対処法を御教授願います。 ソース(抜粋): <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" ID=movie WIDTH=400 HEIGHT=40> <PARAM NAME=movie VALUE="../img/movie.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#336633> <EMBED src="movie.swf" quality="high" bgcolor="#336633" width="400" height="40" type="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"> </OBJECT> movie.swfはバイナリでアップロードしました。

  • htmlからswfファイルへの引数にタブを含みたい

    初めて投稿させていただきます。 ActionScriptの初心者です。 【環境】 winXPで、PHPとMacromedia Flash 8 ActionScript2.0を使っています。 (1)PHP側でHTMLを組み立てる $name = "東京"."\t"."大阪"."\t"."名古屋"."\t"; 上記のような処理を行い、パラメータをswfファイルに渡します。 http://localhost/test1.swf?name=東京 大阪 名古屋 ※タブを含んだURLになっていることを確認しています。 (2)ActionScript側の処理 var aryName = _root.name.split("\t"); ここで問題があり、タブでsplitを行うことが出来ません。 現状では、aryName[0]に"東京大阪名古屋"と入ってきます。 解決方法をご存知の方がいれば、ご教示願いたいく投稿しました。 宜しくお願いします。

    • ベストアンサー
    • Flash
  • flashのswfファイルを1ページに2つ表示できない?

    ネットでいろいろ検索したのですが、なかなか見つからず、質問させて下さい! index.htmlの上部にトップイメージとして、swfファイルを挿入。 同じindex.htmlのコンテンツの中に、もう一つswfファイルを入れました。 サーバーにUPして見てみると、safari,FireFoxではちゃんと表示されるのですが、 IEだと、6、7ともに2つ目のswfファイルが表示されず、空白になってしまいます。書き方がいけないのでしょうか? 作成時はflash8です。よろしくお願いします。 <div id="movie"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="800" height="250"> <param name="movie" value="top.swf" /> <param name="quality" value="high" /> <embed src="top.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="250"></embed> </object> </div> ・ ・ ・ <div id="content"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="577" height="330"> <param name="model" value="model.swf" /> <param name="quality" value="high" /> <embed src="model.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="577" height="330"></embed> </object>

  • phpからクエリ文字列でswfへ変数を送る方法

    現在、別のファイルから取得した変数を下記のようにPHPからクエリ文字列でswfへ送り、それを表示するFLASHを作成しています。 一応、PHP内で直接変数を使わずに、文字列を送った場合は表示に成功しました。 ////////PHP///////// <object 略> <param name="movie" value="flash.swf?test=<?php $_POST["test"] ?>" /> <embed src="chat.swf?test=<?php $_POST["test"] ?>"/> ///////FLASH//////// test_txt.text = _root.test;        ///表示用テキストに代入 どうにかPHPで取得した値をそのままswfへ送りたいのですが、『<?php $_POST["test"] ?>』のところで上手くいっていないようです。 PHPもFLASHも参考書を読みながら進めている初心者なので、解決方法や根本的に勘違いしているところがあったら、ぜひ教えていただけないでしょうか。 開発環境はPHP5.2、AS2を使っています。

    • ベストアンサー
    • Flash
  • Flash画像の枠を消したいです。

    ホームページにswfファイルを設置しましたが、onmouse で枠が出てしまいます。 <OBJECT CLASSID="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000"> <PARAM NAME="MOVIE" VALUE="******.swf"> <PARAM NAME="wmode" VALUE="transparent"> <EMBED src="*****.swf" wmode="transparent"></EMBED> </OBJECT> と言う記述をしていますが、どの様に変えれば onmouse で枠を出さなく出来ますか? よろしくお願い致します。m(__)m

  • CSSにswfを埋め込む記述

    こんばんは。CSSを勉強中です。 HTMLの中にメニューのSWFファイルを埋め込みたいのですが、その場合はCSSでの設定はどのようにしたらいいのでしょうか? HTML上に<object classidcodebase="****" width="750" height="80"> <param name="movie" value="1.swf"> <param name="quality" value="high"> <embed src="1.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="750" height="80"></embed></object> と入れれば表示されますが、それが正しいやり方なのでしょうか?なんだか違っているような気がするのです。 cssで設定しなくてもいいのでしょうか?ご存知の方教えてください。おねがいします。

    • ベストアンサー
    • HTML
  • swfobjectで表示させたswfをランダムに表示したい

    swfobjectで表示させているswfを、 リロードするたびにswfファイルを読み込んでランダムに表示させたいと思います。 下記のswfをランダムに表示させるサンプルソースを流用して 使用しようとしたのですが、javascriptに詳しくないのでうまく行きません。 <embed>タグ、<object>タグを使わずに、swfobjectの書き方に合わせる記述のしかたを教えていただきたいです。 <script type="text/javascript"> <!-- simg=new Array(2); simg[0]="index"; simg[1]="index2"; Myimg=Math.floor(2*Math.random()); document.write("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.c... width='100%' height='100%'><param name='allowScriptAccess' value='sameDomain' /><param name='movie' value='"+simg[Myimg]+".swf' /><param name='quality' value='high' /><param name='bgcolor' value='#ffffff' /><param name='LOOP' value='false'><embed src='"+simg[Myimg]+".swf' quality='high' bgcolor='#ffffff' width='100%' height='100%' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' loop='false' /></embed></object>"); //--> </script>

専門家に質問してみよう