• ベストアンサー

getURL 外部ファイル呼び出しについて

当方初心者で、質問内容が正しいかどうかすら怪しいかもしれません。 質問はフラッシュのアクションスクリプトについてなのですが、 on (release) { getURL("URL"); } このような記述をする場合に、 "URL" の部分を外部のテキストファイルなどから読み取ることはできるのでしょうか。 また、可能であればその方法を教えていただければ幸いです。 初歩的な質問で申し訳ございませんが、何卒お願いします。

  • Flash
  • 回答数3
  • ありがとう数3

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

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

#1です。 お返事遅くなってしまいました。 #1の補足に書かれてらっしゃることから, だいたいの内容は推測できました。 > 例えば上記のような記述で良いということでしょうか? > 検討はずれでしたらすみません。 見当はずれというか,書かれているのは勝手なスクリプトです。 > 読み込むファイルはフラッシュ内という訳ではなく と書かれていますが, #1で書いた loadVariables に関するURL通りのことをとりあえずやってみてください。 やらずに勝手なことをしていると,いつまでもうまく行きません。 loadVariables に関する URL は細かくていねいに説明されすぎていて, 逆に何をしているのかがわからないと言うことでしょうか? 要約しますよ↓。 ~・~・~・~・~・~・~・~・~・~・~・~・~・ まず,Flash と同じフォルダに, 外部テキスト「text.txt」を用意する。 「text.txt」内に書いておくことは ------------------------------------ Mess=読み込まれたメッセージを表示しています。 ------------------------------------ 次に, ステージ上に「Mess」という "変数名" の ダイナミックテキストフィールドを用意する。 フレームのスクリプトとして,次のように書く ------------------------------------ System.useCodepage = true; loadVariables ("text.txt",_root); ------------------------------------  そしてパブリッシュ。 →「読み込まれたメッセージを表示しています。」 が,   「Mess」という "変数名" のダイナミックテキストフィールド に表示される。 ~・~・~・~・~・~・~・~・~・~・~・~・~・ これだけのことです。 この,読み込まれた 変数Mess の値である, 「読み込まれたメッセージを表示しています。」を 上のように表示させるだけでも良いですし, 他に使っても良いということです。 とりあえず表示ができないと,読み込まれたかどうかの確認ができません。 表示させることは実際には不要であっても, 単に表示させると言うことすらできなければ,他のことはできません。 とりあえず上記のようにやってみて, どういうしくみと理屈で表示されているのかを体験で実感しないと理解も応用もできません。  変数をロード    何を   どこへ    ↓        ↓    ↓  loadVariables ("text.txt",_root); です。 「text.txt」を「_root」にロードすると, 「text.txt」内の変数「Mess」の値である, 「読み込まれたメッセージを表示しています。」が, _root にある変数名「Mess」のダイナミックテキストに表示されるという理屈のものです。 上記のことができた上で, ご質問の場合はメッセージを表示させるのではなく, URL が必要なのですから,そこを変えれば良いのです。 ちなみに URL には 日本語が入らないと思うので, System.useCodepage = true; は不要です。  ↓ ↓ ↓ ~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・ まず,Flash と同じフォルダに, 外部テキスト「text.txt」を用意する。 「text.txt」内に書いておくことは ------------------------------ url1=aa.jp ------------------------------ (aa.jp は適当に変えてください) 次に, ステージ上に「url1」という "変数名" の ダイナミックテキストフィールドを用意する。 フレームのスクリプトとして,次のように書く ------------------------------ loadVariables ("text.txt",_root); ------------------------------ そしてパブリッシュ。 →「aa.jp」 が,   「url1」という "変数名" のダイナミックテキストフィールド に表示される。 ~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・ 以上のことができて,やっと第一歩です。 次に, ボタンで指定 URL に getURL したいわけですから, 変数「url1」の値である,「http://○○.jp」に getURL をすれば良いということになります。 ボタンに書くスクリプトは次のようになります。 --------------------------- on (release) { this.getURL(_root.url1); } --------------------------- getURL の () 内ですが, " " でくくると文字列になります。 「_root.url1」という文字列に getURL するのではなく, 「_root.url1」という変数に getURL するのですから, " " は要りません。 変数名 url1 のテキストフィールドは不要ですね。 削除してください。 最初に,変数名 url1 のテキストフィールドを用意しておいた方が, ちゃんとデータがロードされたかを確認しやすいので置いただけです。 また, どこに読み込まれているのかが目で見て確認しやすいと思います。 /////////////////////////////////////////////////////////// 上記のことができた上で,さらに発展させます。 (見て納得してもダメ。実際やらないと理解も応用もできません。) url1 と書かれているところから推測して, さらに url2,url3,… があるのですよね。 その場合です。  ↓ ↓ ↓ ~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・ まず,Flash と同じフォルダに, 外部テキスト「text.txt」を用意する。 「text.txt」内に書いておくことは ------------------------------ url1=aa.jp& &url2=bb.jp& &url3=cc.jp ------------------------------ (aa.jp,bb.jp,cc.jp は適当に変えてください) 次に,ステージ上に 「url1」という "変数名" のダイナミックテキストフィールドと 「url2」という "変数名" のダイナミックテキストフィールドと 「url3」という "変数名" のダイナミックテキストフィールドを用意する。 フレームのスクリプトとして,次のように書く ------------------------------ loadVariables ("text.txt",_root); ------------------------------ そしてパブリッシュ。 →「aa.jp」 が,   「url1」という "変数名" のダイナミックテキストフィールド に,   「bb.jp」 が,   「url2」という "変数名" のダイナミックテキストフィールド に,   「cc.jp」 が,   「url3」という "変数名" のダイナミックテキストフィールド に表示される。 ~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・~・ そして3つのボタンを用意して, その3つのボタンに書くスクリプトは次のようになります。 1つめ --------------------------- on (release) { this.getURL(_root.url1); } --------------------------- 2つめ --------------------------- on (release) { this.getURL(_root.url2); } --------------------------- 3つめ --------------------------- on (release) { this.getURL(_root.url3); } --------------------------- これで3つの URL に関してはできますから, あとは,url○ のデータとボタンを増やせば良いだけです。 また, 変数名 url1,url2,url3 のテキストフィールドは不要ですね。 削除してください。 外部テキストの中身に関してですが, 複数の 「変数名=値」 を用意する場合は, その間を & で区切れば,Flash が 「変数名=値」 のセットの区切だと自動的に判断してくれます。 したがって,本来次のようなデータを用意することが望ましいです。  変数名=値&変数名=値&変数名=値&変数名=値&… つまり,上記の例で行くと,  url1=http://aa.jp&url2=http://bb.jp&url2=http://cc.jp となります。 しかし,これでは人間が見てわかりにくいので, 「変数名=値」 のセットごとに改行を入れたのが, --------------------------- url1=aa.jp& &url2=bb.jp& &url3=cc.jp --------------------------- この形です。 改行を入れる場合は,改行の前後に & を入れてください。 また, さらに見やすく,作りやすくするために, 次のようにしてもかまいません。 --------------------------- &url1=aa.jp& &url2=bb.jp& &url3=cc.jp& --------------------------- ※環境  上記のスクリプトは,  オーサリングツール Flash 5 以上で作成可能,  Flash Player 5以上で閲覧可能です。   ※さらに環境の補足(どうでも良いこと)     this.getURL(_root.url1); →変更→ getURL(/:url1);     などとしてもらうと,     オーサリングツール Flash 5 以上で作成可能で,     Flash Player 4以上でも閲覧可能になりますが,     今どきそんなに古い Player を使用している方もいないと思うので,     普通はここまで配慮しなくてもかまいません。

trancer
質問者

お礼

非常に丁寧にご解説いただき、ありがとうございました! なんとか仕上げることができました。 本当にありがとうございます!

その他の回答 (2)

noname#35109
noname#35109
回答No.2

Flashにテキストファイルをロードするのには, 普通, loadVariables(関数orメソッド)か, LoadVarsクラスのメソッドを使うのが一般的です。 簡単なことをするだけでしたら, 昔からある loadVariables の方が簡単です。 次のURLでも参考にしながら実際に作成されると, どんな作り方をするのかだいたいわかると思います。 簡単FLASH講座「外部テキストを読み込む」 http://orange.2-d.jp/flash/action/14.html しかし, loadVariables は読んだら読みっぱなしの関数(またはメソッド)で, 読み込み中なのか,読み込み失敗なのか,読み込みが完了したのか, その辺の把握ができないので,あまり融通が利きません。 したがって, Flash MX 以降(Flash Player 6 以降)は, もっぱら LoadVarsクラス のメソッドでテキストを読み込むのが一般的になりました。 それで参考サイトなども少ないです(少なくなりました)。 もし,loadVariables で無事作成できて, 慣れてきたようでしたら, LoadVarsクラス のメソッドで読み込むことに挑戦してみてください。 LoadVarsクラス のメソッドは検索すればいくらでも参考になるサイトがみつかります。 Google検索「LoadVars」 http://www.google.co.jp/search?hl=ja&q=LoadVars&lr=lang_ja ※ ただし Flash Player は ブラウザではありません。 したがって, HTML はテキストとしてロードできたとしても, HTML を HTML として Flash が扱わないので, SWF 内に HTML のようなものを表示させるのは無理ですよ。 「変数名=値」の形でテキストデータを用意して, その値の部分に HTML タグ入りテキストを用意した上で, テキストフィールドを表示先に使用して, なおかつ 「テキストをHTMLとしてレンダリング」 を ON にしていると, ある程度のタグを HTML のように表示はできます。 しかし, 一般的にあるようなカタチでは無理です。 Flash 8 のヘルプより HTML 形式のテキストの使用 http://livedocs.macromedia.com/flash/8_jp/main/00001457.html

trancer
質問者

お礼

ありがとうございます! とても参考になり、前進した気がします。 url1 = loadVariables("url1.txt",_parent); on (release) { this.getURL("url1"); } ※url1.txtの一行目にhttp://~~~.jpのように指定しています。 その上で、再度お尋ねしたいのですが、例えば上記のような記述で良いということでしょうか? 検討はずれでしたらすみません。 ちなみに、読み込むファイルはフラッシュ内という訳ではなく、全く新しいページを開くだけで結構です。

noname#39970
noname#39970
回答No.1

その "URL" の部分は文字列が入った変数に置き換えられるだろうから事前に変数に読み込んでおけばできるのでは?

trancer
質問者

お礼

早速のご回答ありがとうございます! しかしすみません、説明不足のようでした。 on (release) { getURL("http://*****.jp"); } のようにして、htmlファイルなどへリンクする方法は解るのですが、 このリンク先URLをテキストファイルなどから読み込んで、変更作業を簡単にしたいということなのですが・・・・ 解りづらくて申し訳ございません。

関連するQ&A

  • 外部swfでgetURLが効かない

    カラーミーと言うショッピングカート?を借りて、FLASHを設置することにしました。 その際、SWF(外部)をJavascript(外部)で読み込ませています。 <script type="text/javascript">flash();</script> そうすると、getURLが全く動作してくれません。 on (release) { getURL("http://www.1art.jp/le.htm","_parent"); } 試しに、自分のサーバのFLASHにアクセスすると、こちらでは動作してくれます。 FLASH、Javascriptは同じものを使用し、この二つを絶対パスでカラーミーに設置しています。こういった場合、getURLを効かせるにはどうしたらいいのでしょうか?

    • ベストアンサー
    • Flash
  • getURLのurl記述部分を外部テキストで記述する方法

    ボタンを押してリンク先に飛ばしたい時って、 on (release) { getURL("index.htm"); } とかって記述すると思うんですが、 外部テキストでリンク先のURLを記述し、ダイナミックテキストの変数のような感じで読み込んで、結果としてクリックすればそのページに飛ぶようにしたいんですけど、どのように記述すればよいのでしょうか。 というか、そもそも可能なんでしょうか・・・。 誰が方法をご存知であれば教えてくださいTT

    • ベストアンサー
    • Flash
  • 外部テキストからURLを読み込む方法

    昨日、外部テキストの読み込みでお世話になったものです。 言われたとおりにやってみたところちゃんとテキストは読み込めました。 次はURLを読みこもうと思い、みなさんの質問の参考になりそうなものを手がかりにやってみたのですが、うまくいきませんでした。 テキストファイルは『flash.txt』 シンボルはMCで フレーム1のアクションスクリプトは ―――――――――――――――――― System.useCodepage = true; myLoadVars = new LoadVars(); myLoadVars.onLoad = function(Success) { if (Success) { _root.text1.text = this.menu1; _root.url1 =this.url1; } }; myLoadVars.load("flash.txt"); --------------------------------------- となっています。 これでシンボルMCに on (release) { getURL("_root.url1"); } とやっているのですが、飛びません。 また前回と同じようにこちらのミスが多いのかもしれませんが、 知っている方がいましたらよろしくお願いいたしますm(__)m

    • ベストアンサー
    • Flash
  • FLASH 外部ファイル読み込み

    FLASHで、action script内に記述するURLの外部読み込みをしたいのですが、うまくいきません。 どなたかご存知の方がいらっしゃいましたら教えてください!!! 宜しくお願いします。

  • flashmx2004でのダイナミックテキスト内印刷

    どうもはじめまして、flashの初心者です。 どうしてもできないコトがあるので質問させていただきます。 外部からダイナミックテキスト内にテキストファイルを読み込んでその読み込んだテキストのみを印刷できるのでしょうか? on (release) { print("InstanceName_2","bmax"); } や on (release) { getURL("print:InstanceName_2"); } では、全体が印刷されてしまいます。 環境はWINXP・2004MXです。 ちなみに「InstanceName_2」はダイナミックテキストのインスタンス名で上記スクリプトはボタンに記述しております。 printjobを使用してやってみてもできませんでした。 ムービークリップはできるみたいなんですが。。。 皆様の知恵をお貸しください。それでは宜しくお願いいたします。

  • Flashvars getURLの書き方

    AS2の質問です。 flashvarsでhtmlからの指定でURLを引用したいと思っています。 作りたいのは画像・URLは全て外部(html)から引用した画像リンクです。 画像はマウスオーバーでアルファを変えます。 古い記憶からgetURLで指定すればよかったような気がし、 ムービークリップに指定しましたが「undefined」と表示されました。 (ボタンだと上手くいくのですが、今度はアルファがうまくきかず……) 下記のようなスクリプトを書いています。 ---------------------------------------------------- onClipEvent(load){ this._alpha=50; } on(rollOver){ _root.******._alpha=100; } on(rollOut){ _root.******._alpha=50; } on(release){ getURL(++++++); } ------------------------------------- *******がムービークリップのインスタンス名 ++++++が引数となります。 こちらは動画の最後に表示するものとして作っています。 よろしくお願いします

    • ベストアンサー
    • Flash
  • 最後のフレームでジャンプするURLを外部テキストで指定したい

    このたび仕事でFlashを扱うことになり、 アクションスクリプトにつまづいております。 ムービー(ごく簡単なものです)の再生が終わった直後に 所定のURLへジャンプさせたいのですが、 それを外部テキストで指定することは可能でしょうか? stopさせてgetURLで絶対指定してしまえば済む話なのですが、 プログラムが関わってくるウェブページで利用するため、 できれば外部テキストで読み込ませる方法が望ましいと考えております。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • フラッシュに割り当てたリンクが

    作動しません。 Flash pro 8 で作成したムービーに URLへのリンクをつけようとGET URLスクリプトを 書いたのですが うまく作動しません。 on (release) { getURL("index.php"); } ↑のスクリプトをアクションスクリプト画面で 入力しました。 対象は白の長方形でボタンに変換してあります。 何がおかしいのか色々調べたのですが初心者なもので よくわかりません。 どなたか教えてください

  • getURL の変数?

    FLASHバナーから任意のURLにリンクする際、キャシュ漏洩を防ぐため、 -- SWFファイル上のボタンに組み込むActionScript(Flash 5以降の場合) -- on(release) { if ((clickTAG.substr(0, 5) == "http:") or (clickTAG.substr(0, 6) == "https:")) { getURL(clickTAG); } } と記述するのが通例のようですが、実際のリンク先はどのように設定すればいいのでしょうか? 変数で指定すればいいのかなと思うのですが、その記述方法がわかりません。 切羽詰ってしまいました。よろしくお願いします。

  • 携帯用Flashでgeturlさせる方法

    お世話になります。似たような質問があったのですが どうしてもできなかったので新たに質問させていただきます。 携帯用のFlashアニメーションをFlashLiteで作成し、 最後にボタンを置いて他のページ(携帯用のページ)へリンクさせようとしています。 ボタンには以下のスクリプトを記述しています。 on (release, keyPress "0") { getURL("目的のURL"); } こうしたところ、PC上のブラウザや、Flashアプリケーション上のプレビューでは正確に動作しリンク先のページへ移動するのですが、 docomoのimode対応htmlシミュレーターや、携帯実機で試すと 移動しないのです。 それほど難しいことをしようとしているわけではないのですが、 何かスクリプトに問題があるのでしょうか。 指定するurlはindex.htmlでなくてはならない等制約があるのでしょうか。 現在指定しているのはパスまで(http://www.abc.ne.jp/)でファイル名まで(abc.php)は指定していません。 何か分かること、間違っていることがあれば教えてください。 どうぞよろしくお願いいたします。

専門家に質問してみよう