• ベストアンサー

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

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

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

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

  • ベストアンサー
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」と出るだけで、何がどうなっているのかがさっぱりです。 とりあえず、コピペしただけなのですが、何か設定などが悪いのでしょうか?すみませんが、解決方法を教えてください。

関連するQ&A

  • 一度再生したFlashをスキップするには

    トップページにFlashムービーを配置したのですが、 他のページを閲覧した後に再びトップページに戻ったときに、ムービーを再生せずに最後のフレームを表示させるにはどのようにしたらよいのでしょうか? ムービーの最後のフレームをコピーして別のflashを作り、各ページの「topへ」ボタンには、こちらのflashへのリンクを書き込んでみたのですが、ブラウザの戻るボタンを使うとやはり再生されてしまいます。 分かりにくい説明ですみませんが、よろしくお願いいたします。 ※制作環境は、WIN-XP FLASH8です。

    • ベストアンサー
    • Flash
  • トップページにCGI

    トップページにCGIを使ったらアドレスの最後が /index.cgi になるじゃないですか、それを /index.html にしたいのですがどうすればいいのですか? フレームを使うやり方は知っているのですが それ以外の方法があれば教えてください。

    • ベストアンサー
    • CGI
  • CGIでFLASHを表示する

    CGIで他のFLASHファイルの内容をそのまま表示するにはどうすればいいのでしょうか。 Content-typeをapplication/x-shockwave-flashにすればいいようだったので、以下のようにしたのですが白紙のFLASHが表示されるだけで何も起こりません。 3~5行目の外部ファイルの取得方法が間違ってると思うのですが、なにとぞご教授よろしくお願いします。 #!/usr/bin/perl print "Content-type:application/x-shockwave-flash\n\n"; open(E,"_mj.swf"); print <E>; close(E); exit;

    • ベストアンサー
    • Perl
  • 一度再生したFlashをスキップするには

    トップページにFlashムービーを配置したいのですが、 一旦トップページを表示し、その後他のページを閲覧した後に再びトップページに戻った場合、ムービーを再生せずに最後のフレームを表示させたいのですが、 どのようにしたらよいのでしょう? FlashMX2004です よろしくお願い申し上げます

  • Webのトップページに、cgiで表示される内容の一部(最初から20行程

    Webのトップページに、cgiで表示される内容の一部(最初から20行程度)を切り取った形で表示したいと思います。 毎日更新する日記の一部を切り取ってトップページに置くことで、トップページのアクセス数を増やしたいと考えております。 なお、綺麗に一日分を切り取れる必要はなく、例えば最初から20行程度が表示できれば十分です。 制約条件は以下の通りです。 (1)cgiプログラム自体に変更を加えないこと。cgiはプロバイダが提供しているものを使っているので、変更できないから。 (2)トップページのhtml(index.html)の記述変更だけで目的を達成できること。理由は、上記(1)に同じ。 上記目的を実現できる方法、ヒント、または適当なポインタをご教授頂きたく、よろしくお願い致します。

  • フレームセットのリンクを変更するCGI

    フレームセットを利用していると直リンクされると、レイアウトが崩れて嫌なので普段はJavaScriptで <body onLoad="if (top == self) { location.replace('index.html') };"> このタグで強制的にフレームセットのページであるindex.htmlにリロードしています。 でも、この場合だとindex.htmlにフレーム設定をしているA.htmlとB.htmlしか表示できません。 これを、直リンクされた場合に強制的にindex.htmlに飛んで、さらにフレームセットのページをA.htmlとC.html(直リンクされたページ)に変更させたいのです。 index.htmlを表示させた後、C.html(直リンクされたページ)のアドレスを取得してフレームセットを書き直すCGIなのだと思いますが、このようなCGIのフリーなどありましたら教えてください。 JavaScriptとCGIの混合技らしいので、JavaScriptカテゴリにも書き込んでおります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=745359

    • ベストアンサー
    • CGI
  • SSIでCGIを出力?

    今、インフォシークでHPを作ってます。 拡張子が.htmlのページの中に<iframe>で、小さくCGI(拡張子.cgi)を表示しているのですが、 そのCGIのページにも広告が入ってしまって、広告がいっぱい!となってしまいました。 インフォシークではフレームを使った場合の小さい方のページは.shtmlにしろ、とありましたが、CGIの拡張子を変えるわけにも行かず問い合わせをしたんです。 すると >CGIで出力させているフレームを.shtmlファイルにして、 >そこにSSIと同様の方法でCGIを出力させてください。 と返答がありました。 1行目の意味と、2行目のやり方が解かりません。 ・・・長くなってすみませんm(_ _)m

    • 締切済み
    • CGI
  • Flashが表示しなくなった!!

    まだサーバーの方には転送していないのですが、TOPページにFlashを使用したページを作っています。ちょっと前までは、ちゃんとすぐに表示していたのに、今は、表示されなくなってしまいました。これはなぜですか?僕はホームページビルダー7を使っていて、そのFlashは、Flashの素材屋さんのやつをいただいたものです。 また、Flash表示スピードは速いですか?

  • CGIなのかな??

    質問です。 上にはタイトルロゴ、 左にメニューの一覧があり それぞれのページにその二つを 常に表示させたいんです。 そういう場合、 メニューにコンテンツを追加すると それぞれのページを いちいち更新しなければならないのが今の状態です。 ひとつを更新するだけで全てが更新されるには CGIかなにかなんでしょうか? それともフレームなんでしょうか>? ちなみに Homepage creater6使っております。

  • Flashの中でCGIのBBSを表示

    Flash 8を使用しています。 Flashでサイト製作をしており、Flashの中でCGIのBBSを表示させたいのですが、 上手く行きません。 私がやろうとしていることは以下のとおりです。 ボタンクリックで、以下のようにしてExplorer風のウィンドウを表示する。 on (release){ var emptyObject = _root.createEmptyMovieClip("emptyClip",_root.getNextHighestDepth()); var attachObject = emptyObject.attachMovie('bbs_window',"movieObject",0); attachObject._x =100; attachObject._y =100; attachObject.onEnterFrame = function(){ } } 表示されたMovieClipをドラッグできるようにする。 on (press) { _parent.swapDepths(_root.getNextHighestDepth()); _parent.startDrag(); } on (release) { _parent.stopDrag(); } actionscriptは初心者のため無駄なコードがあるかとは思いますが、 ここまでは、やりたいことは上手く行っています。 こうして表示されたMovieClip(Explorer風ウィンドウ)の中に、 CGIで作られたBBS(http://www.2apes.com/products/index.html)を表示させたいのですが、 上手く行きませんでした。 私がやろうとしたこと: 上記MovieClipの中にMovieClipを作成し、 (1) onClipEvent (load){ this.loadVariables("~~.cgi"); } とする。 ⇒表示されず。 (2) onClipEvent (load){ this.loadVariables("bbs.html"); } とし、bbs.htmlに<iframe>や<frameset>でcgiを埋め込む。 ⇒bbs.htmlは表示されるが、フレーム非対応ブラウザ用のメッセージが表示される。 (3) bbs.htmlに、cgiへのリンクを貼る。 ⇒MovieClip内ではなく、swfを表示しているウィンドウ全体をtargetにして表示されてしまう。 以上です。 BBS自体は正常に動作しています。 (2)の方法で行ければ理想的なのですが、不可能でしょうか。 他にどのような方法が考えられるでしょうか。 解決方法がお分かりになる方、ご教授をよろしくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう