FLASH内のjavascriptのリンクを外部から変更するには?

このQ&Aのポイント
  • FLASH内のjavascriptのリンクを外部から変更するには、LoadVarsクラスを使用して外部テキストからデータを読み込み、ポップアップの表示を設定します。
  • 具体的には、LoadVarsクラスのインスタンスを作成し、onLoadメソッドを定義します。外部テキストのデータを変数に格納し、ポップアップのHTMLファイルへのリンクを設定します。
  • また、ポップアップ用のボタンにはgetURL関数を使用し、javascriptのopenwin関数を呼び出します。ただし、ポップアップが正しく表示されない場合は、HTMLファイルのパスや記述の間違いを確認してください。
回答を見る
  • ベストアンサー

FLASH内のjavascriptのリンクを外部から変更するには?

環境:WinXP、Flash8 FLVをループ再生するサムネイル的なSWFを作成しています。 そのSWFで一覧用のボタンをクリックしたときには一覧ページへ、 そのほかをクリックしたときにポップアップで詳細用の大きなFlashムービーを見せようと思い FLASH内リンクを外部から変更するには?:http://okwave.jp/qa2949657.html を参考に外部テキストから外部データの読み込みをしていたのですが SWFを押したときのポップアップの表示だけがうまくいきません。 構造は --------------1FのAS---------------- myLoadVars = new LoadVars(); //[1]LoadVarsクラスのインスタンスにLoadVars.onLoadメソッドを定義 myLoadVars.onLoad = function(bSuccess) { //[2]メソッドに渡された変数分析結果の引数がtrueかどうかを判定[*] if (bSuccess) { koushin.loadMovie(_root.myLoadVars.thum);//□ サムネイル画像の読み込み footerimg.loadMovie(_root.myLoadVars.linkimg);//□サムネイル下部の画像の読み込み //FLVのインクルード nc = new NetConnection(); nc.connect(null); ns = new NetStream(nc); video.attachVideo(ns); // "video"は、ステージ上のビデオに付けたインスタンス名 ns.play(_root.myLoadVars.flvfile);//□ flv ファイルを再生します data.txtの"flvfile"の読み込み ns.onStatus = function(infoObject) { if (infoObject.code == "NetStream.Play.Stop") { this.seek(0); } }; } }; // キャッシュ参照防止策 // 今現在の時刻オブジェクト myDT を作成 myDT = new Date(); // 1970年1月1日(世界時) からのミリ秒を取得 myTM = myDT.getTime(); // // myLV に外部テキスト「data.txt」をロード myLoadVars.load("data.txt"+"?time="+myTM); ------------------------------------ -------------data.txt--------------- &flvfile=Http://○○○○.flv& &thum=thum.jpg& &popup=Http://○○○○.html& &ichiran=/ichiran/& &linkimg=link.jpg& ------------------------------------ flvfileはサーバ上のFLVデータ thum、linkimgは画像 ichiranは一覧ページへのリンク popupは詳細用Flashムービーのhtmlへのリンク (アドレスですが実際はHttpではなくhttp) popupとインスタンス名を付けたボタンに ------------------------------------ on (release) { getURL("javascript:openwin('_root.myLoadVars.popup')"); } ------------------------------------ と記述したのですがポップアップは出ても中のページはNotFoundとなります。 試しに_root.myLoadVars.popupをHttp://○○○○.htmlと置換すると表示されました。 LoadVarsやgetURL、javascriptなどで調べてみたのですが何がいけないのかが解りませんでした。 すいません、どなたかご教授願えないでしょうか? 宜しくお願いします。

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

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

getURL の ( ) 内が,全て " " でくくられていて文字列扱いになっているではありませんか。 getURL("javascript:openwin('_root.myLoadVars.popup')");      つまり getURL("文字列"); _root.myLoadVars.popup は, ブラウザに渡すべき文字列ではなく,Flash 内の変数です。 書かれていらっしゃることを全て試したわけではないので, 他にも原因があるかもしれませんが, 少なくとも上で書いた部分は間違っていると思います。 こんな感じ↓でできませんでしょうか? getURL("javascript:openwin('"+_root.myLoadVars.popup+"')");

C-poncho
質問者

お礼

sassakunさん回答して頂いて、ありがとうございます。 教えていただいた記述で無事に表示できました。 文字列扱いになっていたんですね。 おかげで自分が理解できていない部分もはっきりしました。 文字列と変数に関してもっと勉強していきます。 本当にありがとうございました。

関連するQ&A

  • 外部テキストから画像やリンクを変更するflashバナーを作り方

    すみません。 どなたかFLASHに詳しいかたご教授お願い致します。 自社サイトで 下記URLのような画像が切り替わるバナーを作りたいと思っているのですが、 ​http://www.style-walker.com/​ 画像の読み込ませ方がうまくいきません。 画像が頻繁に変わるので外部テキストから変数を読み込み、 画像と、画像をクリックした際のURLを変更したいと思っております。 ネットで調べながら何とか形としてできたのですが、 画像をその都度読み込ませるような形で、回線速度が遅いとバナーが切り替わる度に画像の表示にタイムラグが発生してしまいます。 構成ですが、 バナー画像を読み込ませるインスタンスが bn01、bn02、bn03、bn04とし それをタイムライン上で四つ区切りにし配置しております。 外部テキストファイルには ///////////// &vlink01=​http://www.yahoo.co.jp/&​ &vlink02=​http://www.google.co.jp/&​ &vlink03=​http://www.livedoor.com/&​ &vlink04=​http://mixi.jp/&​ &vbn01=​http://www.​○○/01.jpg& &vbn02=​http://www.​○○/02.jpg& &vbn03=​http://www.​○○/03.jpg& &vbn04=​http://www.​○○/04.jpg& /////////////// と記載しております。 アクションスクリプトレイヤーには、 bn01、bn02、bn03、bn04それぞれに切り替わる部分に /////////////////// loadVariables ("link.txt",_root); LINK = new LoadVars(); LINK.load("link.txt"); LINK.onLoad = function() { loadMovie(vbn01, _root.bn01); }; //////////////////// /////////////////// loadVariables ("link.txt",_root); LINK = new LoadVars(); LINK.load("link.txt"); LINK.onLoad = function() { loadMovie(vbn02, _root.bn02); }; //////////////////// とそれぞれ四つに一回ずつ記載しております。 リンク先はそれぞれのインスタンスに直接 ///////////////// on (release) { this.getURL(_root.vlink01); } ///////////////// と記載しております。 最初に全ての画像を一気に読み込み、 それぞれのインスタンスに読み込ませるといった 効率のいいスマートなやり方を探しております。 scriptの初心者のため、どなたかご教授お願いいたします。

    • ベストアンサー
    • Flash
  • 外部テキストが読み込めません

    はじめまして FLASHをつい1週間まえからはじめました超初心者です。 こちらの過去ログをみてやってみたのですが、うまくいかなかったので質問させてください。 外部テキスト(test.txt)をLoadVarsクラスで読み込み、 その中の定義(text=…)をMC(インスタンス名はtext)に書き出したいのですが、何度やっても書き出せません。 アクションスクリプトは ――――――――――――――――― System.useCodepage = true; myLoadVars = new LoadVars(); myLoadVars.onLoad = function(bSuccess) { if (bSuccess) { _root.text = this.text; } }; myLoadVars.load("test.txt"); ―――――――――――――――― 以上のようになっています。 わかる方いましたらよろしくお願いします。 質問初めてですので、今後のためにも言葉が足りなかったりしたら遠慮なく突っ込んでください。

    • ベストアンサー
    • Flash
  • flashで切り替わるバナーの外部画像を全部読み込んでからスタートする方法

    どなたかご教授お願いします。 4つの画像が切り替わっていくものをFLASHで作成しており、 そのバナーの画像や、画像のリンク先は外部テキストの変数から引っ張っております。 なんとか形として完成したのですが、 最初に再生したときに、一枚目の画像が読み込まれる前に再生されるので、 一週目がいつも画像が途中で再生されます。 構成としては タイムライン上で bn01~bn04のインスタンスが切り替わっていき、 それぞれのインスタンスが表示されるタイムラインのところに loadVariables ("link.txt",_root); LINK = new LoadVars(); LINK.load("link.txt"); LINK.onData = function() { loadMovie(vbn01, _root.bn01); }; と記述しており それぞれのインスタンスに 直接 on (release) { this.getURL(_root.vlink01); } と記載しております。 http://www.style-walker.com/ 上記サイトのメインバナーのように作りたいのですが、 どなたかご教授いただけないでしょうか。 宜しくお願い致します

    • ベストアンサー
    • Flash
  • 外部swfを重ならないように表示したいです。

    FLASH初心者です。 二つの大小異なるサイズの読み込み用MCを用意して、 並んでいるサムネイルをクリックすると、その読み込み用MCに大きな写真と小さな写真を外部swfで読み込むようにしたいのですが、二つの読み込み用MCが重なっているので、表示が重なってしまいます。 大きい(小さい)写真のサムネイルをクリックすると、読み込み用MCに表示されている小さい(大きい)サイズのswfが消え、なおかつ前面に外部swfを表示する方法を探しています。 サムネイルのボタンインスタンスには、 on (release) { loadMovie ("pic1.swf", "_root.change"); } としています。 読み込み用MCには、change(小さい)、change2(大きい)と名前を付けています。 どなたか知恵を貸してください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • テキストファイルの読込について

    _rootの1フレーム目に以下のActionScriptを記述しました。 this.stop (); myLoadVars = new LoadVars(); myLoadVars.onLoad = function(Success) { if (Success) {   trace("result="+_root.result);  } }; myLoadVars.load("test.txt"); test.txtの中身は以下です。 result=test 実行したところ、結果は result=undefined でした。 result=testにならないのはなぜなのでしょうか?

    • ベストアンサー
    • Flash
  • Flashで外部FLVをダウンロードできなくする

    FLASHで作成したSWFデータに外部FLVを読み込んで表示しているのですが、 そのFLVデータをダウンロード出来ないようにする方法はあるのでしょうか? FLASHでダウンロード禁止にする設定なんてあるのでしょうか? もし外部FLVをダウンロードさせないやり方を知っている方がいらっしゃいましたら教えてください。

  • 外部テキストファイルからの制御

    はじめまして、いつも勉強させていただいております。 一応、過去ログなども見てみたのですが見つけられなかったので質問させていただきます。 最終的に行いたい事は、表題通り外部テキストファイルから、swfを制御させたいと思っています。具体的には、例えばテキストファイルに『03』と書いてあったら『03.swf』を再生する…テキストファイルに『10』と書いてあったら『10.swf』を再生するといったような事です。 初心者ながら色々と調べながら失敗を繰り返したりしているのですが… data.txt(テキストファイル)の中に『&myData1=01&』と記入。 同階層にindex.swf(親swf)『gamen』という名の空インスタンスMC 同じく同階層に01.swf(子swf)… index.swfに書いたASはこんな感じです。 myLV = new LoadVars(); if (myLV.myData1 = "01") { loadMovie("01.swf", _parent.gamen); } myLV.load("data.txt"); 完全に初心者ですので、根本的に大間違いをしているかとは思いますが、救いの手をお願いいたします。 WIN-XP FLASH8です。

  • MCの色を外部テキストで制御する方法について

    ムービークリップに色をつけるときは、 ムービークリップにimg1と名前を付けて image = new Color(this.img1); image.setRGB(0xff0000); で成功します。 それを外部テキストファイルを使い色変更しようと考えましたが、うまくいかない為に質問させていただきました。 ============================== ・ムービークリップ名をimg1 ・テキストファイルread.txtに『&color1=0xff0000&』 とする 以下、asフレームです。 myLoadVars = new LoadVars(); myLoadVars.onLoad = function(Success) { if (Success) { image = new Color(this.img1); image.setRGB(color1); } }; myLoadVars.load("read.txt"); stop(); ============================== loadVariablesを使った方法も試しましたが成功しません。いろいろな言葉で検索しましたが見つからず、お手上げ状態なので、もし、分かる方がいたらお教えください。

    • ベストアンサー
    • Flash
  • 外部テキストをsplitで分割する時

    宜しくお願いいたします。 外部テキストをsplitで分割しようと思うのですが・・。 スクリプトはこんな感じになっています。 System.useCodepage = true; // Shift-JISのテキストを読み込む設定に変更 myText01 = new LoadVars(); // 新規LoadVarsオブジェクトmyTextの作成 txt_file01 = "text/text001.txt"; // 外部テキストファイル名を変数txt_fileに代入 myText01.load(txt_file01); // 外部テキストファイルの読み込み _root.bp=t001 //変数 myText01.onLoad = function(ok) { if (ok) { // 外部テキストファイルを読み込んだときの処理 work_txt = myText01._root.bp.split("~"); と書いて、text/text001.txtというテキストのt001という行を"~"で分割したいのですが、うまくいきません・・・。 変数でオブジェクトを指定しているのが悪いと思うのですが、何か良い方法はありますか? 何分初心者なもので・・・。 説明がわかりづらいかもしれませんが、困ってしまっているので宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • 【FLASH】onLoadCompleteで外部swfの内部情報を取得するには?

    FLASH8(Win-XP)使用者です。 onLoadCompleteで外部swfの内部情報を取得することはできるのでしょうか? 具体的には、外部swf(gaibu.swf)の中の_root.gaibuMcの高さを調べたい場合、 myListener = new Object(); myListener.onLoadComplete = function(){ takasa = _root.eizo.gaibuMc._height; }; my_mcl = new MovieClipLoader(); my_mcl.addListener(myListener); my_mcl.loadClip("img/gaibu.swf", _root.eizo); といった記述ではうまくいきませんでした。 お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash