• ベストアンサー

ParaFla ActionScript でcgiデータ送受信したい

ParaFlaのActionSciptでcgiデータ送受信したいです。 http://www.1art.jp/flash2/chapter/49/49.htm 上記を参考にLoadVars.sendAndLoad()メソッドの使用を試みたのですが、 var send_lv: LoadVars = new LoadVars(); 上記の記述で構文エラーになってしまいます。ParaFlaでは:(コロン)が通用しないのでしょうか。 ParaFlaのActionSciptからcgiを呼び出す(http通信)するにはどうしたらよいでしょうか?

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

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

> ParaFlaでは:(コロン)が通用しないのでしょうか。 :(コロン)が通用しないと言うより, ActionScript2.0 以上が使えません。 ParaFla! で使えるのは基本的にActionScript1.0のみです。 (SWF4構文もActionScript1.0と呼ぶとするなら, "完全に" ActionScript1.0 のみ ということになります。 SWF4構文をActionScript1.0としないとするなら, "基本的に" ActionScript1.0 のみ ということになります。) :(コロン)は ActionScript2.0構文 の厳密な型指定と呼ばれるもので, 変数やオブジェクトの 型 を宣言する物です。 ちなみに ActionScript1.0 とか 2.0 とか言うのは文法です。 使用できる関数やメソッド(つまり単語)の使用範囲を示すものではありません。 ActionScript2.0の:(コロン)は, 現実問題,あってもなくてもどっちでも良い物ですから, その部分を削除して, var send_lv = new LoadVars(); にしても何の問題も起こりません。 厳密な型指定 をしておくと, 宣言した型以外のものが変数やオブジェクトに代入されようとしたり, 宣言した型のものが違う型のものとして使用された場合, "Adobe Flash では",エラーが出ます。 それで,スクリプトの書き間違えや,変数やオブジェクトの誤使用を防ぐことができます。 つまり, バグ取り に便利であったり,スクリプトを書く本人の自覚につながるもので, 型 でエラーを出すようなしくみがないソフトであれば, :(コロン) はあてもなくても普通は大勢に影響しません。 > ParaFlaのActionSciptからcgiを呼び出す > (http通信)するにはどうしたらよいでしょうか? これは色々なケースがあるので一概には言えません。 LoadVars.sendAndLoad() のようなすごいものを使う場合もありますし, LoadVars.load() だけでも十分な場合も多々あります。 getURL() でもできます。 loadVariables() でもできます。 書かれていらっしゃる, 「loadVars.sendAndLoad()メソッド。データ送受信」 のページのものでも :(コロン)以降 さえ取れば使用できると思います。

kingfruits
質問者

お礼

ご回答ありがとうございます。 コロンの無い記述にすることにより、期待通りの結果が得られました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【ActionScript】ListコンポーネントとaddItemの階層関係

    お世話になります。 現在、ListコンポーネントとaddItemを使ってサーバーと連携し、Listを動的に追加する仕組みを構築しています。 基本的なところは出来ているのですが、functionの中でsendAndLoadをすると、値は受け取れているのですがListにアイテムが追加されません。 var send_lv = new LoadVars(); var recv_lv = new LoadVars(); mc.btn.onRelease = function() { send_lv.value1 = "値" send_lv.sendAndLoad("xxx.cgi", recv_lv, "GET"); } recv_lv.onLoad = function(success){ if (success) { _root.sList.addItem(value2); } } mc:汎用movieclipインスタンス名 btn:mc下のボタンオブジェクトのインスタンス名 sList:コンポーネントのインスタンス名 value1:cgiに送る値 value2:cgiから返ってくる値 このfunctionの外でsendAndLoadを実行すると難なく追加されるのですが、、、何か間違っていますでしょうか。 分かる方、お願い致します。

  • FlashよりLoadVarsクラスを使用し,CGIへデータを送信しようとしていますが…

    FlashよりLoadVarsクラスを使用し、CGIへデータを送信しようとしていますが・・・。 なかなか成功しません;; Flashのアクションスクリプト、およびCGI(Perlで)スクリプトをお教えいただけないでしょうか? -詳細- ボタンに LoadVars.send(); LoadVars.sendAndLoad(); などを使用し、Flash→CGIへ送信し、結果を表示したり、Flash→CGIへ送信し、CGIで送信した変数などを処理した後、Flashより変数を受信し、表示する。 -例- 1.Flashよりテキストフィールドに文字を入力し、CGIへ送信。 2.CGIにて受信後、受信した文字をopenで保存(.txtファイル作成) 3.先ほどCGIより保存したtxtファイルをFlashから読み込む。 -環境- 楽天さんのiswebライトでPerl言語を使い、Content-typeをHTMLでCGIを作成しております。 ご教授いただければ幸いです。 どうか、よろしくお願いいたしますm_ _m

    • ベストアンサー
    • Perl
  • actionscript2.0 とphp を用いてブラウザでswfファ

    actionscript2.0 とphp を用いてブラウザでswfファイルを表示しています。 actionscript側では、 以下のようにsendAndLoadメソッドを用いて var send1 = new LoadVars(); test1.page = 1; test1.sendAndLoad("test.php",test1); send1.onLoad = function() {  ロードした際の処理 } test.phpに値を送信しています。細かく言えば flash上のボタンが押された後にsendAndLoad し,1を送信しています。 それに対しphpでは、 <html> <head> </head> <frameset rows="55%,*"> <frame name='bottom1' src="test.php"> <?php // Action ScriptからのPOSTデータの取得 $page = $_POST['page']; print("<frameset cols='62%,*'>"); if ($page == 1){ print("<frame name='bottom2' src='test1.php'>"); }else{ print("<frame name='bottom2' src='test2.php'>"); } ?> </frameset> </frameset> </html> 上記のようにPhp側では$pageを受け取り、1であればフレームで指定されているファイルを test1.phpとします。$pageが空であればtest2.phpを下フレームに表示しています。 そしてメインとなるtest.phpではswfファイルを表示していて、そのFLASHのボタンをクリックして、test.phpにsendAndLoadしています。 動作なのですが、sendAndLoadして、testp.phpで値は取得しているのですが、 ページがロード(更新)されません。なので下フレームがtest1.phpからtest2.phpに 遷移しません。試しにsendのみしてみると、新しくブラウザが開き、そのページが更新されています。 新しくブラウザを開かないでframeによるページ更新をする方法はないのでしょうか? ご教授願います。 以下はsendのみの場合です。 var send1 = new LoadVars(); send1.page = 1; send1.send("***.php", "bottom", "POST");

    • ベストアンサー
    • Flash
  • ActionScriptとPHPでメール送信

    【flashmail.as】 LV1 = new LoadVars(); LV1.onLoad = function(success){ gotoAndStop(2); // 2フレーム目に移動 } var1 = ""; var2 = ""; var3 = ""; gotoAndStop(1); on(press){ if(var1==""){err=err+"名前が入力されていません!\n");} if(var2==""){err=err+"メールアドレスが入力されていません!\n");} if(var3==""){err=err+"メッセージが入力されていません!\n");} LV1.var1 = var1; LV1.var2 = var2; LV1.var3 = var3; if(err==""){ LV1.sendAndLoad("./flashmail.php", LV1, "POST"); } } 以上のようなactionscriptファイルと、FLAHファイル本体flashmail.flaの2フレーム目に 同様の文を、アクションとして、書いてます。もちろん、モーションファイルflashmail.swfも書き出して、FTPサーバーの同じディレクトリに置いています。 動きとしては、メールフォームに入力して、送信ボタンを押すと、ありがとうございました。 と表示され、そのあと、flashmail.phpのmb_send_mail() でメール送信するはずなのですが、メールが到着しません。 flashmail.phpの内容も下記に表示します。 【flashmail.php】 <?php $subject = $_POST['var1']; $to = $_POST['var2']; $message = $_POST['var3']; var_dump($message); $from = "~"; $subject = mb_convert_encoding($subject, "utf-8", "auto"); // utf-8にエンコード $message= mb_convert_encoding($message, "utf-8", "auto"); mb_internal_encoding("UTF-8"); $res = mb_send_mail($to, $subject, $message, $from); header("Location: flashmail.html"); ?> どうすれば、メールが到着するようになるのか、ご指導お願いします。

    • ベストアンサー
    • PHP
  • PHPとFALSH連携メール

    mail.fla と flash_mail.php に下記のように記述してます。 flash_mail.php で、var_dump() したら、すべてNULL になります。 .fla ファイルのシンタックスは通ってるのですが、 Action Scriptのどこかが間違っていると思います。 どこが間違っているのかお教え願いますでしょうか。 【mail.fla】 1フレーム目(キーフレーム)に書きを記述 LV1 = new LoadVars(); LV1.shimei = shimei; LV1.email = email; LV1.subject = subject; LV1.honbun = honbun; LV1.sendAndLoad("flash_mail.php", LV1, "POST"); submit_btn.onRelease = function(){ getURL("flash_mail.php"); } --------------------------------------------------------------------------- 【flash_mail.php】 <?php $shimei = $_POST['shimei']; $email = $_POST['email']; $subject = $_POST['subject']; $honbun = $_POST['honbun']; var_dump($shimei); var_dump($email); var_dump($subject); // 送信者へメール $to = $email; $from = "~"; $subject = mb_convert_encoding($subject, "utf-8", "auto"); // utf-8にエンコード $honbun = mb_convert_encoding($honbun, "utf-8", "auto"); mb_internal_encoding("UTF-8"); mb_send_mail($to, $subject, $honbun, $from); echo 'test complete!'; ?>

    • ベストアンサー
    • PHP
  • flashからCGIへデータ送信

    flashからCGIへデータ送信する際、 今のところgetURLを使っているのですが、 これだとCGIページが開いてしまうので困っています。 データさえ送信できれば、CGIページは開かなくていいので、 そのようにできるやり方はありますでしょうか>< http://1art.jp/flash/le/lesson46/lesson46.htm こちらを参考にさせていただいて変更してみたのですが、 getURLだと、Flash上で定義している変数が一括で送信されているに対して、 このやり方だとこのように  my_lv.name1 = name1_txt.text; として、my_lv.○○といちいち変数を定義し直さなければならないのかな? と認識しています。(もし間違ってたらすみません) このやり方に変更すると、今まで動いていたCGIが動かなくなってしまったので; なので、できれば変数が一括送信されるgetURLのような方法があればな、と思っています。 説明下手で申し訳ありませんが、ご助言頂けると嬉しいです。

    • ベストアンサー
    • Flash
  • swf(Flash)からcgiへのデータの送信について

    ショッピングサイトを制作しており、「ショッピングカートを見る」というボタンにFlashを使っています。 HTMLで送信する場合のボタンの記述は下記のようになっています。 <form action="http://www.●●●.com/shopingcart.cgi" method="POST"> <input type="hidden" name="mode" value="view"> <input type="submit" value="カートを見る"> </form> 色々調べて、下記のようにflashのボタンに記述したところ、ローカルのムービープレビューでは 問題なくカートの中が見れたのですが、サーバーにアップして試したところ、「直接CGIは起動 できません」という、CGIのエラーが返ってきてしまいました。 on (release) { var formData: LoadVars = new LoadVars(); formData.type="view"; formData.send("http://www.●●●.com/shopingcart.cgi?mode=view", "_blank", "POST"); } よく分かっていない為行き詰まっています。 よろしければご教授下さいますよう、お願い致します。

    • ベストアンサー
    • Flash
  • ActionScript2.0とPHPの連携

    下記のスクリプトをflashプレーヤー8.0、Action Script2.0 でムービーの書き出しを行って、実行すると 合計の計算結果蘭に「undefined」と表示され、 合計値がちゃんと表示されません。 どこが間違っているのでしょうか? 【test1.fla】 (scriptレイヤー) //Shift-jisを使う //System.useCodepage = true; //loadvarsobject作成 LV1=new LoadVars(); //送信が成功した場合 LV1.onLoad = function(success){ //LoadVarsオブジェクトに得られた計算結果を反映させる out1=LV1.out1; } gotoAndStop(1); (mainレイヤー) //送信ボタンが押されたとき on (press) { //LoadVarオブジェクトに変数をセット LV1.in1=in1; LV1.in2=in2; LV1.in3=in3; LV1.in4=in4; //LoadVarオブジェクトの内容をphpスクリプトへ送信する LV1.sendAndLoad("test1.php",LV1,"POST"); } 【test1.php】 <?php //Flashから送られてくる変数を受け取る $in1=$_POST['in1']; $in2=$_POST['in2']; $in3=$_POST['in3']; $in4=$_POST['in4']; //合計を求める $result=$in1+$in2+$in3+$in4; var_dump($result); //Flashに合計を伝える echo 'out1='.$result; //送信されてきた変数をログファイルに残す $fp=fopen("log.txt","ab"); fputs($fp,"$in1,$in2,$in3,$in4\n"); fclose($fp); ?>

  • FlashのPost受け取り

    FlashのPost受け渡し方法が分かりません。 ネットで検索するとFlash→CGI→Flashや、外部テキストの読み込み方法などはたくさんヒットするのですが、CGI→Flash、HTMLフォーム→Flashというような目的のものは見つかりませんでした。 POST渡しで外部ファイル名を渡し、その外部ファイルからテキストを読み込んで、ダイナミックテキストで表示するというものを作ろうと思っています。 この場合はどのアクションを使うと良いのでしょうか? LoadVars()? loadVariables()? sendAndLoad()? ネットで検索した情報から色々試してみてはいるのですが、全く分かりません。助けてください! 環境: Windows XP Flash MX PHP 4.2.4 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • varとは

    http://www.1art.jp/flash2/chapter/36/36.htm や http://oshige.com/flash/note/archives/2005/02/post_23.html などを参考に今、「配列」について勉強しています。 上記HPを見ていると、varが頻繁に出てきます。 とあるHPではvarの解説として「function内の変数に「var」をつけると、ローカル変数となり、functionの中だけで使える変数になる。functionを抜けると「var」のついた変数は無効となり、変数名が余計に増える事を防げる。」「よく分からなくても、functionの中だけで使い、functionを抜けるといらなくなる変数には、varをつけて定義すると覚えておけばよい」と書かれていてそういうものと思っていたのですが、そういうものでもないのかな??とvarって何? という感じでいます。 varとはどの様に使用すべきものなのでしょうか? 解説や参考HPなどありましたら書き込みをいただけたらと思います。 よろしくお願いします。

    • ベストアンサー
    • Flash