• ベストアンサー

PHPからFlashへの配列の渡し方がわかりません

こんにちは。 FlashとPHPの連係についての質問です。 どうしてもわからないのでどなたか手を貸してくださると助かります。 PHP側から$a=array("a","b","c")、という配列をFlash側に送ります。 その際、まずHTMLタグの<object>内にはどのように記述すればよろしいのでしょうか? またFlash側でその配列をどのように受け取り、その値を配列に入れたいのですがどのようにしたらよろしいでしょうか?? どなたかお願いいたします。

  • Flash
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

「配列」が「配列オブジェクト」として存在するのは, そのファイル内またはその言語での構造物内です。 言語やソフトによって「配列オブジェクト」の持ち方や意味する物も変わりますし, その言語やソフト内で「これは配列である」と定義しなければ配列でも何でもない文字列テキストデータとなります。 さらに Flash の場合は, SWF という静的ファイル内に ActionScript という人間語がコンパイルされることによって, その ActionScript がマシン語に近い物に変換されて FlashPlayer というソフトで動作します。 ActionScript はコンパイル前の人間語ですから,  // 変数 a は 要素 "a","b","c" を持つ配列変数である  a=array("a","b","c") などという人間語を送っても,そういうものとしては動作しません。 単なる 「$a=array("a","b","c")」 という文字列。 または 変数 $a は 「array("a","b","c")」 という文字列である。 としか解釈されません。 したがって, a=a,b,c という 変数a と 値a,b,c をSWFに送信して, 『変数a の値を 「,」 で split したものが配列である』 というように ActionScript 側で定義するような必要があると思います。 > PHP側から$a=array("a","b","c")、という配列をFlash側に送ります。 > その際、まずHTMLタグの<object>内にはどのように記述すればよろしいのでしょうか? これは,  PHP で動的HTMLを生成して,  HTML に SWF を貼り付けるようなコードを書く。  その HTML コード経由で SWF にデータを送信したい。  そのときのタグの書き方はどうすれば良いか? ということですよね。  ↓ここに書いてあるようなタグです↓ 「[228618]FlashVars を使用して SWF へ変数を渡す」 http://support.adobe.co.jp/faq/faq/qadoc.sv?228618+002 > Object タグの例: > <PARAM NAME=FlashVars > VALUE="foo=Hello%20World&paragraph=first+line%0Dsecond+line"> > > Embed タグの例: > <EMBED src="display.swf" > FlashVars="foo=Hello%20World&paragraph=first+line%0Dsecond+line" ... > (ほかのパラメータ)> </EMBED> 【---例---】 任意のディレクトリの直下に PHP で生成する HTML と その HTML に貼り付ける 「display.swf」 という SWF があったとします。  任意のディレクトリ     ├ ○○.html (または ○○.php)     └ display.swf パラメータは他にも色々ありますが, 重要どころのみを残した形にすると, ○○.html (または ○○.php) に 「display.swf」 を貼り付けるタグは次のようになります。 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="横幅" height="高さ" id="display" align="middle"> <param name="movie" value="display.swf" /> <param name=FlashVars VALUE="a=a,b,c"> <embed src="display.swf" width="横幅" height="高さ" name="display" align="middle" FlashVars="a=a,b,c" type="application/x-shockwave-flash"/> </object> なお, ActionScript2.0 の場合, 「display.swf」 内の _root のフレーム1に, 次のようなスクリプトを書いておくと, SWF 内に "a","b","c" という要素をもつ配列 aArr ができるとともに, それが検証で確かめられます。 ------------------------------------------- // 変数 aArr は 変数 a を 「,」 で split した配列である var aArr:Array = a.split(","); // --- 以下は単なる検証 --- // 配列 aArr の要素の数だけループ for (var i:Number = 0; i<aArr.length; i++) { // テキストフィールドを横並びで作成 var _txt:TextField = this.createTextField("my_txt"+i, i, 10+i*20, 10, 20, 20); // テキストフィールドの周りの枠を付ける _txt.border = true; // テキストフィールドに 配列 aArr の要素を順に表示 _txt.text = aArr[i]; } -------------------------------------------  

macha6389
質問者

お礼

本当に丁寧な解説ありがとうございます!! 詳しすぎて正直感動しています。。 参考にしてトライしてみたいと思います。 本当にありがとうございます。。

関連するQ&A

  • PHPからFlashへの配列の渡し方がわかりません

    こんにちは。 FlashとPHPの連係についての質問です。 どうしてもわからないのでどなたか手を貸してくださると助かります。 PHP側から$a=array("a","b","c")、という配列をFlash側に送ります。 その際、まずHTMLタグの<object>内にはどのように記述すればよろしいのでしょうか? またFlash側でその配列をどのように受け取ればよろしいでしょうか?? どなたかお願いいたします。

    • 締切済み
    • PHP
  • 配列型の宣言?

    こんにちは。 あるサイトで見たphpのサンプルなのですが、 postされた全ての値を配列に格納するもので、以下のような記述がありました。 foreach((array)$_POST as $key => $value){  $array[$key] = $value; } ポストされた全ての値を、配列$arrayに連想配列として格納しているのはわかるのですが、 foreachの、(array)というのはどういう働きをするものなのでしょうか。 これは、$_POSTが配列であるという宣言でしょうか。 それと、postされた値がない場合、$_POSTを配列だと宣言しておくことで、foreachのエラーを回避するような役割もあるのでしょうか。 恥ずかしながら、(array)のような記述をphpではあまり見ないような気がするのですが、なんというキーワード(?)で勉強すれば理解が深められるかもご教授頂けますと助かります。 宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • FLASHとPHPの連携

    はじめまして。 現在FLASHとPHPを連携させたサイトの検討をしているんですが、PHPで生成した変数をFLASHに持っていく方法がわかりません。そのままだと、PHP変数には$が付きますがそれだとFLASH側で読みません。PHP側からいちいちテキストで吐き出していたんでは処理が間に合わないんですが、どうしたらいいでしょうか?ご存知の方いらっしゃいましたら教えていただけると助かります。

  • 二つの配列のマッチング

    お世話になっております。 配列$a と $b から配列$cを作りたい。 どうすればいいですか? $a = array('200708', '200709', '200710' ,'200711', '200712', '2000801); $b = array('200710,3', '200712,1'); $c = array('200708,0', '200709,0', '200710,3' ,'200711,0', '200712,1', '2000801,0); または、 $c = array('200708', '200709', '200710,3' ,'200711', '200712,1', '2000801);

    • 締切済み
    • PHP
  • PHPの配列でわからないことがあるので教えてください。

    PHPの配列でわからないことがあるので教えてください。 例えば以下のような2つの配列$aと$bがあるとします。 $a[0]=a、$a[1]=b、$a[2]=c $b[0]=w、$b[1]=q、$b[2]=b、$b[3]=c これで、$a[1]と$b[2]の中身が同じであることを取得し、さらに$bの配列の添え字の2を返すようにしたいのですが、わかりません。 どのようにプログラムを書けばよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • php&html printで二次元配列が表示できない

    <html><body> <?php $array1[]= array(); //二次元配列作成 $array1[0][0] = 123; print "$array1[0][0]"; ?> </body></html> というプログラムを作成してみたのですが、printの中身がhtmlでは”一次元配列$array1[0]”と”文字列[0]”という風に読み取られているようで、 表示が Array[0] となってしまいます。 どうにか二次元配列の値を表示する方法はありませんか?

    • ベストアンサー
    • PHP
  • 多次元配列

    初歩的な質問ですみません。 PHPプログラミングでの質問です。 仮に、多次元配列Aに、 Array( [0] => Array ( [0] => 6 ) [1] => Array ( [0] => 2 [1] => 1 ) [2] => Array ( [0] => 0 [1] => 5 [2] => 4 ) ) 多次元配列Bに、 Array( [0] => Array ( [0] => りんご ) [1] => Array ( [0] => ぶどう [1] => パイナップル ) [2] => Array ( [0] => みかん [1] => すいか [2] => メロン ) ) のように値が入っている場合、配列Aの値を参照して 値の大きいものから順に、それに対応する配列Bの値を取り出し、 あたらしい配列Cに代入する処理の書き方を教えて下さい。 上記の例ですと、配列Cが、 Array ( [0] => りんご [1] => すいか [2] => メロン [3] => ぶどう [4] => パイナップル [5] => みかん ) となるようにしたいです。 よろしくお願いします。 長文失礼しました。

    • ベストアンサー
    • PHP
  • table を配列で取得

    HTML のtableタグで生成した表の各セルの値を、 PHPの配列で取得するやり方があるらしいのですが。 どのように記述するのでしょうか? サンプル等がありましたら、教えてください。

    • ベストアンサー
    • PHP
  • phpのセレクトボックスの配列について

    お世話になっています。 PHPのセレクトボックスの設定でわからないことがあります。 一度質問させていただいたのですが連なる点でわからないとこが出たので質問させていただきます。 不明点は3つあります。 1.セレクトボックスの値を配列で設定する 配列で設定しておけばその配列を複数使用しても参照配列さえメンテすればいいと思うので配列を想定しています 2.配列で設定したときのセレクトボックスの初期値について セレクトボックスの値をベタ書きしている場合は単にselectedすればいいと思うのですが配列の場合厳密なselectedの方法が不明です 3.配列での選択値をPOSTした場合 3つめが最もはまっています以下のソースだと選択値が配列の値が表示されますし、初期値も表示できていますが POSTした値がまともに渡されていません POST先でDB処理を想定しているのですがdate型だとすべて[00:00:00]になってしまいます。 配列を使用しないパターンだと1.2.3全てうまくいくのですがメンテナンスがしづらいので配列で指定したいです 何か、良い方法があればご教授ください //配列の値 $time = array( "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23" ); $minute = array ("00", "15", "30", "45"); for( $a=0; $a < count( $time_array ); $a++){ $selectedStartTime =($time_array[$a] == $start_time[$j])?" selected":""; $startTimeSelectBox .= "\t<option value=\"{$time_array[$a]}\"{$selectedStartTime}>{$time_array[$a]}</option>\n"; } for($a=0; $a < count($minute_array); $a++){ $selectedStartMinute =($start_minute[$j] == $minute_array[$a])?" selected":""; $startMinuteSelectBox .="\<option value=\"{$minute_array[$a]} \"{$selectedStartMinute}>{$minute_array[$a]}</option>\n"; } <td><select name="start_time<?php echo $day ?>" onblur = "func()"> <?php echo $startTimeSelectBox ?> </select> : <select name="start_minute<?php echo $day ?>" onblur = "func()"> <?php echo $startMinuteSelectBox ?> </select> </td> かなり詰まっています。よろしくお願いします。

    • ベストアンサー
    • PHP
  • Javascriptの配列についてFLASH画像を反映させるには

    javascriptの回転バナーを表示させているのですが、静止画像であれば 上手に反映されるのですが、FLASHのswfを指定すると表示されません。ちなみにswfではなく、<object></object>を埋め込んでも表示されませんでした. javascriptの配列でFLASHを表示させるにはどうのようにしたら良いのでしょうか? var txt = new Array(); #静止画像 txt[0]="<A href='http://www.xxxxxxx.com' target='_blank'><IMG src='banner/○○○.gif' border='0'></A>"; #FLASH画像(swfバージョン) txt[1]="<A href='http://www.YYYYYYY.com/' target='_blank'><IMG src='banner/▲▲.swf' border='0'></A>"; #FLASH画像(objectバージョン) txt[2]="<A href='http://www.○○○.com'<object> classid='clsid:xxxxxxxxxxxxxxxxxxxxxxxxxxx' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' width='500' height='70'> <param name='movie' value='http://www.ssss.com/banner/●●.swf'> <param name='quality' value='high'></object> </A>"; mmax = 3; //メッセージ行数 txtno = Math.floor(Math.random() * mmax); document.write(txt[txtno]); 1.静止画像だけで配列するとバナーが表示されます。 2.FLASH、拡張子swfにすると×マークで表示されます。 3.<object></object>にすると全て表示されなくなります。 javascriptの配列でFLASH画像を表示させるにはどうしたら良いのでしょうか? 宜しくお願い致します。

専門家に質問してみよう