• ベストアンサー

ボタンのアクションスクリプトについて

ボタンをクリックしたら指定のURLを開かせる、というときは、ボタンのアクションスクリプトに対して、 on(press){ getURL ("01.html"); } としますよね? これを「●●」という名前のボタンは「01.html」、というように一括で変更する方法はありますか? 最初は「01.html」だったけど、その後「../01.html」になった場合、ひとつひとつ選択して変えなくてはなりません。 もし、そういう方法があったら便利だなと思ったモノで。 使用しているのはFLASH5です。

  • w-inty
  • お礼率72% (1169/1618)

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

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

> on(press){ > getURL ("01.html"); > } > > としますよね? 普通は on(press) ではなく on(release) ですが, そういう細かい話ではなく大きく言えば,書かれていらっしゃる通りそうします。 Flash 5 では,ほとんどそれしか道がありません。 余談ですが1つ後のバージョン Flash MX からは  ボタンインスタンス.onPress = function(){}; や  ボタンインスタンス.onRelease = function(){}; などがフレームに書けるようになったので,より柔軟に色々なことができるようになりました。 またさらに ActionScript3.0 になると, 逆に on(press) や on(release) というようなものをボタン自体に書くということはできなくなりました。 ムービークリップ自体に書く onClipEvent (enterFrame) なども同様に使えなくなりました。 というわけで, Flash 5 では良いも悪いもなく on(press) や on(release) を使うしかありません。 兎にも角にもそれで行くしかないわけですから, 変えるとなると getURL ("01.html"); の "01.html" の部分を変数などにして, その変数などの値を変えるという方向しか道はありません。 道が1つしかないのですから逆に悩む必要はないので,その点は楽かもしれません。 > 最初は「01.html」だったけど、その後「../01.html」になった場合、 これは変わる規則などによるので何とも言えませんが, オーソドックス(原始的)に考えるなら次のようにします。 例えば3つのボタンとそれに対応するURLが3つあったとします。 その場合 _root の フレーム1 辺りにでも url0 = "01.html"; url1 = "02.html"; url2 = "03.html"; と書いておいて, 各3つのボタンには on(press){ getURL (_root.url0); } on(press){ getURL (_root.url1); } on(press){ getURL (_root.url2); } と書いておけば, _root のフレーム1の3行を変えるだけでボタンがジャンプするURLも変わります。 _root.url0 などの 「_root」 は抜いてもらってもかまいません。 「_root」 を付けておくとボタンをムービークリップの中に入れた場合でもそのまま使えるので書いているだけです。 それ以上の手抜き方法も色々あります。 しかしこれは本当に場合(データ)によります。 _root のフレームのスクリプトを for (i=0; i<=2; i++) { this["url"+i] = ("0"+(1+i)).substr(-2, 2)+"html"; } このように↑しても url0 = "01.html"; url1 = "02.html"; url2 = "03.html"; と書いたのと同じことになります。 したがって,「../01.html」になった場合は for (i=0; i<=2; i++) { this["url"+i] = "../"+("0"+(1+i)).substr(-2, 2)+"html"; } とすれば url0 = "../01.html"; url1 = "../02.html"; url2 = "../03.html"; を書いたのと同じことになります。 変更が非常に楽です。 さらに "../" を変数にしておいても良いと思います。 path = "../"; for (i=0; i<=2; i++) { this["url"+i] = path+("0"+(1+i)).substr(-2, 2)+"html"; } こうすると 「path = "../";」 の部分だけを変えるだけですべてのボタンのジャンプ先URLが一気に変えられることになります。 また, path という変数名を付けたテキスト入力のテキストフィールドを用意しておくと, Flash作成者ではなく,SWF閲覧者が自由にパスを変えることもできるようにもなります。 「URLデータの形」やその「データの変化の規則性」や「使う場合」などによって,その辺の工夫は様々に変わります。 ・ for文 に関しての参考URL 「繰り返し文 for - FLASHアクションスクリプト入門編」 http://isvalid.jp/actionscriptLab/ASlesson/actionsctipt_for.html ・ 演算子 [ ] に関しての参考URL 「ドットシンタックスと配列アクセス演算子」 http://www.fumiononaka.com/TechNotes/Flash/FN0507001.html ・ substr の弟1引数にマイナスを使うことに関しての参考URL 「Flashカウンタその7(完成)」 http://blog.oni100.jp/?eid=198222

w-inty
質問者

お礼

回答ありがとうございます。 おお!!教えていただいた方法でできました!! めっちゃ簡単に修正ができるようになり、とてもうれしいです。 ありがとうございました☆

関連するQ&A

  • 指定したURLを開くアクションスクリプトを教えてください

    FlashCS4です。アクションスクリプト3.0です。 タイムラインのフレームにアクションスクリプト3.0を使用して、ボタンをクリックしたら指定したURLが別ウインドウで開くアクションスクリプトの記述を教えてください。お願いします。 具体的には…例えばボタンに「navi_btn」と言うインスタンス名を使用して、そのボタンをクリックしたら指定したURLが別ウインドウで開くようにしたいのです…。教えてください。よろしくお願い致します。

    • ベストアンサー
    • Flash
  • mailtoのアクションスクリプト

    こんにちわ、以下のアクションスクリプトを フレームではなくボタンに記述したのですが メールクライアントが起動しません on (release) { getURL("mailto:xxx@***.jp"); } エラーチェックをしても正常と評価されました スクリプトはただしくても メールクライアントは起動しないものなのでしょうか? 普通にHTMLソースでmailtoをおこなったら メールクライアントが起動したもので(汗 どなたか御指導お願いいたします。 FLASH8を使っております

    • ベストアンサー
    • Flash
  • Flash の action script が動きません

    初歩的な質問で失礼します。 Flash MXを使用しています。 ボタンを押したらURLに飛ぶ、というものを作りたいのですが ボタンに、 on (release) { getURL("http://www.*****.html"); } を指定したくても、ボタンシンボルのアップ/オーバー/ダウン...の中では「この場所には指定できません」というようなエラーメッセージがアクションパネルに表示され、書くことができません。 調べたところ、「ASを 2.0に指定すれば直る」と書いてあるページが多かったのですが、ver.MXにはそれを指定できる所が見当たりませんでした。 かといってタイムライン上に書くと「マウスイベントはボタンインスタンスでのみ使用できます。」と出てしまい、URLに飛んでくれません。 一体どうしたら良いでしょうか? どうかよろしくお願いします。

  • ボタンインスタンスにスクリプトを記述するやり方

    flash CS3 シーン1をループさせないで止めたいので「stop();」が上から2番目のレイヤーの1459行目のキーフレーム(最後のフレーム)に入っていて、一番上のレイヤー(1459行目の最後のフレーム)にボタンのインスタンスを配置して「もう一度みる」をクリックすると最初からFlashが見れるようにしたいと考えています。 この場合のアクションスクリプトの記述の仕方を教えてください。 使うスクリプトは on (press) { getURL("http://www.******/"); } でいいんですよね? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • ▼画像ボタンにリンクがつけられません;

    MacOSX、FlashMX2004を使用しています ネットなどでは、シンボル化したボタンを選択し、 右クリックをすればアクションというのが表示されるのでそれを クリック。とかいてあるのですが、それがでてきません・・・; アクションスクリプトに on (release) { getURL("http://flash.webkun.org/", "_blank"); これをいれればいいらしいのですが、アクションがでてこないので 挿入できません・・・どなたか助言願います

  • アクションスクリプト!

    flashで作ったトップページでムービーを再生させているのですが、flash上で作ったボタンをクリックするとコンテンツページ(htmlファイル)に飛ぶようにスクリプトを以下のように設定しました。 on (release) { getURL("map.html"); } ところがこれだけでは、再生中のムービーが最後まで再生しおわらないとページに飛んでくれません。本で探したのですがわからなくて困っています。ボタンをクリックしたら再生中のムービーを無視してすぐに飛ぶようにしたいです。どなたか解る方教えて頂けないでしょうか?

  • Flash CS3にて埋め込みビデオにアクションスクリプトでgetURLを設定したい。

    Flashの初心者でして2時間くらい悩んでいます。 現在Flash CS3を利用して、フラッシュバナーをつくろうとしています。 まず、動画バナー.movという動画ファイルを制作し、 「読み込み>ビデオの読み込み」 の流れで、埋め込みビデオにて読み込みました。 次に、下のようなアクションスクリプトで、 on (release) { getURL(""); } フラッシュバナーのリンク先ページの指定を行いたいのですが、 「現在の選択範囲にアクションを割り当てる事はできません」 と表示されており、設定する事ができません。 設定方法を教えて頂きたいです。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • ボタンでウィンドウを閉じたい

    いつも、ありがとうございます。MACOSX FLASH8です。safariとIEで動作確認しております。 swf上のボタンからブラウザのウィンドウを閉じたく、ボタンに on (press) { getURL("javascript:window.close()"); } というスクリプトを入れましたが閉じてくれません。 過去の質問から検索しても、これでいいはずなのですが。 親ウィンドウだからでしょうか?困っています。 よろしく、お願いします。

  • Flashのアクションスクリプトについて質問があります。

    Flashのアクションスクリプトについて質問があります。  FlashのCS2を使って選択式クイズを作っています。タイトルや問題などのフレームにはラベルを付けて、ラベルレイヤーのキーフレームにスタートや選択肢のボタンを配置しました。そして、タイトルラベルにあるスタートボタンを押すと問題1に飛ぶようにアクションスクリプトを設定しました。その後、きちんと設定出来ているか再生して確認してみたところ、問題1から再生されて、タイトルから再生されなくなりました。何回かやり直してみたのですが、タイトルから再生されませんでした。アクションスクリプトの設定は、「タイトルラベルのキーフレームをクリック→スタートボタンが選択されていることを確認→F9を押してアクションスクリプトの設定画面を表示→スクリプトアシストをオンにする→グローバル関数の中にあるgotoをダブルクリック→移動して再生を停止をオンにする→タイプをフレームラベルに変更→フレームのメニューをクリックして問題1を選ぶ」というふうにしました。 なぜ、タイトルからではなくスタートボタンを押さないと表示されない問題1が表示されたのかわかりません。どこで設定を間違えているのか分からないので、わかる方がいらっしゃたら教えていただきたいと思います。お願いします。

  • スクリプトがわかりません。

    趣味でぼちぼちとFlashゲームを作成しています。 よく、画面上のボタンをプレス(クリックする指を押したままに)するとボタンの絵が引っ込んで、 普通のクリックをするとボタンの絵が引っ込んだり出っぱったりするのがありますよね。 あれはどうすればできるのかわかりません。 あるフレームにボタンのOFF、隣のフレームにONの画を配置して透明ボタンを配してそこになにかのスクリプトを書くのでしょうか。 クリックするたびに、ボタンのスイッチがONとOFFを繰り返すような 動きにしたいのです。 わかりにくい質問ですみませんが、よろしくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう