• ベストアンサー

Flash内にCGIを表示する方法。

トップページで大きめにフラッシュを動作させます。 最後のフレームで更新記録を表示したいと思っています。フラッシュ内に複数行領域(という言い方であってます?)を表示して、その中にCGIの内容を表示すると言う感じですね。 この場合、どのようにセットしたらよいのでしょうか? また、CGIのほうにも何か仕込みが必要ですか?

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

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

#1です。 すみません。補足に対する返事が遅れたみたいで。 #1のスクリプト自体は合っていると思うのですが, 文章が間違っています。  > インスタンス名を「news.」にし,[複数行] の設定…    ↓変更↓  > インスタンス名を「news」にし,[複数行] の設定… インスタンス名「.(ドット)」が不要です。 というか根本的にこんなところに「.(ドット)」があってはなりません。 失礼しました。 それと ActionScript の方の注釈行  > //Load完了時の処理  > myLoadVars.onLoad = function(Success) {  > //読み込みが成功したら  > if (Success) {  > //_root news mess  > _root.news.text = this.mess;  > //ロードに失敗したら  > } else {  > //なんとかごまかす言葉を表示  > _root.news.text = "更新情報はありません。";  > }  > }; この部分の,  > //_root news mess  > _root.news.text = this.mess;    ↓変更↓  > //_root の インスタンス名news のダイナミックテキストに,  > //変数 mess の値を表示  > _root.news.text = this.mess; です。 注釈を書こうと思って忘れていました。 結局,インスタンス名「news」。 これが動かない原因だと思います。 「news」 は ドットが入っていてもいけませんが, 変数名であってもダメです。 インスタンス名です。 CGI の動きが変であったとしても, 以上のようにすると, 「更新情報はありません。」が表示されるだけで, 「undefined」が表示されることはなくなると思います。

その他の回答 (1)

noname#35109
noname#35109
回答No.1

Flash 側のスクリプトは LoadVarsクラス のメソッドで行けます。 一応,すっごい簡単な成功例 です(CGI苦手なんです…)。 今やってみました。 まず,ステージ上には, 複数行入るくらいのダイナミックテキストのテキストフィールドを作成し, プロパティパネルより, インスタンス名を「news.」にし,[複数行] の設定にしておきます。 文字の色は背景以外の色を選択してください。 インスタンス名は今勝手に news にしているだけで,アルファベット大小文字から始まっていれば,だいたいなんでもOKです。 またフレームは1フレームしか作っていない場合です。 --- renewal.cgi -------------------------- #! /usr/bin/perl #↑各プロバイダで指定しているパスを記述 print <<"_OUTPUT_"; Content-type: text/html;charset=iso-8859-1 mess=更新履歴\n3/5 一昨日はひな祭りだった。\n3/3 今日はひな祭りだ。 _OUTPUT_ exit(0); --------------------------------------- (↑\n は改行コードです。) ---Flash フレーム1 のスクリプト-------------- //↓Shift-JIS の場合(UTF-8では不要) System.useCodepage = true; //LoadVarsインスタンスの生成 myLoadVars = new LoadVars(); //Load完了時の処理 myLoadVars.onLoad = function(Success) { //読み込みが成功したら if (Success) { //_root news mess _root.news.text = this.mess; //ロードに失敗したら } else { //なんとかごまかす言葉を表示 _root.news.text = "更新情報はありません。"; } }; //LoadVarsインスタンス に 「renewal.cgi」 をロード myLoadVars.load("renewal.cgi"); --------------------------------------- 「renewal.cgi」 と それを表示させる SWF とそれを貼り付けた HTML を同じディレクトリにアップした場合です。 また一応,CGI の パーミッションは 777 にしました。 (そんなに高い数字にする必要はないと思いますが。) なにしろやり慣れていないわけで, 深く質問されてもわかりませんが,一応の例です。 LoadVars CGI と検索されるともっと応用的なものが紹介されていると思います。   ↓

参考URL:
http://www.google.co.jp/search?hl=ja&q=LoadVars+CGI&lr=lang_ja
master-3rd
質問者

お礼

返答ありがとうございます。 今ちょっと忙しくて試す時間がないので、後でやって見ます。 とりあえず、お礼の言葉だけでもと思い書き込みしました。すみませんが、結果についてはもう少しお待ちください。

master-3rd
質問者

補足

お待たせしました。 やってみたのですが、うまく動作しません。 「undefined」と出るだけで、何がどうなっているのかがさっぱりです。 とりあえず、コピペしただけなのですが、何か設定などが悪いのでしょうか?すみませんが、解決方法を教えてください。