• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:getURLでボタンでリンク先を変えるやり方について教えてください。)

getURLでボタンのリンク先を変える方法

このQ&Aのポイント
  • getURLを使用してボタンのリンク先を変更する方法について教えてください。
  • 「A」と「B」というボタンがあり、ボタンを押した後にgetURLのボタンを実行すると、設定したURLにボタンに設定した文字列が追加されて実行されます。
  • 「A」ボタン、または「B」ボタンを押した後にgetURLのボタンを実行する場合、それぞれのボタンに設定した文字列がURLに追加されます。両方のボタンを押した場合は、ボタンの文字列が順番にURLに追加されます。ボタンの数に制限はありません。

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

  • ベストアンサー
  • joy_28
  • ベストアンサー率84% (45/53)
回答No.4

hinarueさん、 組み合わせがいくつあって、少し、混乱するかもしれないですが、trace();で丹念に、調べることです。 //以下、1.html、12.html、13.html、123.html、132.htmlの5枚用意 //ここから var strLink:String = "1"; var strA:String = ""; var strB:String = ""; var a:Boolean = false; var b:Boolean = false; a_mc.onRelease = function():Void { a = !a;//aがfalseなら、trueに、trueなら、falseに変化する trace(a); if (a) {//trueなら、 this.nextFrame();//第二フレームに移動、停止し、選択状態を表示 strA = "2"; strLink += strA;//文字列 12もしくは、123を生成 } else {//falseなら、 this.prevFrame();//第一フレームに戻り、非選択状態を表示 if (b) {//bがtrueなら、 strLink = "13";//b_mcが選択された状態なので、"13" } else {//falseなら、b_mcは非選択状態なので、"1" strLink = "1"; } } trace("ボタンAによるLink先:"+strLink); }; b_mc.onRelease = function():Void { b = !b; if (b) { this.nextFrame(); strB = "3"; strLink += strB;//文字列13もしくは、132を生成 } else { this.prevFrame(); if (a) { strLink = "12"; } else { strLink = "1"; } } trace("ボタンBによるLink先:"+strLink); }; link_mc.onRelease = function():Void { trace("最終的なLink先:"+strLink);//1、12、13、123、132 getURL("./"+strLink+".html"); }; clear_mc.onRelease = function():Void {//初期値に戻す a = b=false; a_mc.prevFrame(); b_mc.prevFrame(); strLink = "1"; strA = ""; strB = ""; }; //ここまで となります。

hinarue
質問者

お礼

joy_28さん とても参考になりました。 説明も分かりやすくて本当に助かりました。 今までスクリプトを見てもまったくイメージができなかったのですが、これからの勉強していく上で少し自信になりました。 後は自分でひとつひとつ動作を試しながら覚えていきたいと思います。 どうもありがとうござました。

その他の回答 (3)

  • joy_28
  • ベストアンサー率84% (45/53)
回答No.3

hinarueさん、 自分ではマニュアルを何度読んでも出てこないのがもどかしいです。 > Flashは、大工道具を提供するようなもので、マニュアルには、其々の、機能や使い方は書いてありますが、何を作るかは、記載されてません。まさしく、Whatの部分が、Flashの使い手が考えることですし、道具の組み合わせた使い方も、使い手が考えることになります。だから、作る過程が、楽しいのかもしれません。 一般論は、さておき、質問への回答ですが、 ・ボタンをMovieClipで作ります。 1.適当なボタンの絵を作り、MovieClip化し、シンボル編集画面で、第二フレームに、キーフレームを挿入し、色か形を変更します。 2.シンボル編集画面内の第一フレームのスクリプトレイヤーに、 this.stop(); とします。 3.シーンに戻り、適当な位置に、配置し、instance名を、a_mc、b_mc、link_mcとします。 4.シーンの第一フレームのスクリプトレイヤーに、以下を記載します。 以下、1.html、12.html、13.html、123.html、132.htmlの5枚用意 //ここから var strLink:String = "1"; var strA:String = ""; var strB:String = ""; var a:Boolean = false;//ブール値を設定し、初期値は、false var b:Boolean = false; a_mc.onRelease = function():Void { a = !a;//aがfalseなら、trueに、trueなら、falseに変化する trace(a); if (a) {//trueなら、 this.nextFrame();//第二フレームに移動、停止し、選択状態を表示 strA = "2"; strLink += strA;//文字列 12もしくは、123を生成 } else {//falseなら、 this.prevFrame();//第一フレームに戻り、非選択状態を表示 b_mc.prevFrame();//b_mcも第一フレームに戻る strLink="1";//初期値に戻す } trace("ボタンAによるLink先:"+strLink); }; b_mc.onRelease = function():Void { b = !b; if (b) { this.nextFrame(); strB = "3"; strLink += strB;//文字列13もしくは、132を生成 } else { this.prevFrame(); a_mc.prevFrame(); strLink="1"; } trace("ボタンBによるLink先:"+strLink); }; link_mc.onRelease = function():Void { trace(strLink);//1、12、13、123、132 getURL("./"+strLink+".html"); }; //ここまで 尚、trace();を駆使することが、早道のコツです。

hinarue
質問者

補足

joy_28さん、度々ありがとうございます。 まだ手探りですけど、かなり遠いですが作る課程を楽しめるくらい勉強したいと思っています。(マニュアルだけは何冊か買ってますが) 教わったスクリプトで動かしてみましたのですが、ボタンAとボタンBをオンにした状態で、片方をオフにすると両方オフになってしまうのですが、オフにしたボタンをのみを初期値に戻すようには可能でしょうか? また全体のクリアボタンも残せると良いのですけど。 教わってばかりで自分で解決しないといけないのですが、あれこれスクリプトをさわって小一時間悩んでみましたのですけど、どうもうまくいかないです。何度もすみませんがよろしくお願いいたします。

  • joy_28
  • ベストアンサー率84% (45/53)
回答No.2

hinarueさん、 教えて頂いたスクリプトはAとBを両方押してからlinkを押しても1+2+3で出力されるのでしょうか?(追加される2や3の順番は特にどちらが先でも問題ありません) >そうなります。 またClearはクリアボタンの事でしょうか? >そうです 先ずは、ご自分で、頭と手を使って、試してみましょう。それが、早道です。 尚、以下のようにも記載できます。 //以下、1.html、12.html、13.html、123.html、132.htmlの5枚用意 var strLink:String = "1"; var strA:String = ""; var strB:String = ""; a.onRelease = function():Void { //this.enabled = false;//これがないと、永遠に、文字列が追加され、対応するhtmlページの用意ができないのでは? if (strLink.length<3) {//strLinkの文字数が、2文字以内なら、追加可能とする strA = "2"; strLink += strA;//文字列 12もしくは、123を生成 } trace(strLink); }; b.onRelease = function():Void { //this.enabled = false; if (strLink.length<3) { strB = "3"; strLink += strB;//文字列13もしくは、132を生成 } trace(strLink); }; link.onRelease = function():Void { trace(strLink);//1、12、13、123、132 //getURL("./"+strLink+".html"); }; clear.onRelease = function():Void {//インスタン名 clearのボタンをクリックすると、初期値に戻す //a.enabled = true; //b.enabled = true; strLink = "1"; strA = ""; strB = ""; }; //ここまで

hinarue
質問者

補足

joy_28さん 教えて頂いたスクリプトで動きました。ありがとうございます。 自分ではマニュアルを何度読んでも出てこないのがもどかしいです。 それと追加で質問なのですが、 「A」や「B」ボタンが押されている事が確認できるように押されている間はボタンの色などを変える(画像を変える?)ことは可能でしょうか? また、例えば「A」のボタンを押すたびに「A」の追加と「A」のクリアができるようにはできるのでしょうか?(オンオフのスイッチみたいな感じです) 何度もすみませんが、どうぞよろしくお願い致します。

  • joy_28
  • ベストアンサー率84% (45/53)
回答No.1

hinarueさん、 以下のようなことでしょうか? //以下、1.html、12.html、13.html、123.html、132.htmlの5枚用意 var strLink:String = "1"; var strA:String = ""; var strB:String = ""; a.onRelease = function():Void { this.enabled = false;//これがないと、永遠に、文字列が追加され、対応するhtmlページの用意ができないのでは? strA = "2"; strLink += strA;//文字列 12もしくは、123を生成 trace(strLink); }; b.onRelease = function():Void { this.enabled = false; strB = "3"; strLink += strB;//文字列13もしくは、132を生成 trace(strLink); }; link.onRelease = function():Void { trace(strLink);//1、12、13、123、132 getURL("./"+strLink+".html"); }; clear.onRelease = function():Void {//初期値に戻す a.enabled = true; b.enabled = true; strLink="1"; strA = ""; strB = ""; }; //ここまで

hinarue
質問者

補足

joy_28さん、どうもありがとうございます。 教えて頂いたスクリプトはAとBを両方押してからlinkを押しても1+2+3で出力されるのでしょうか?(追加される2や3の順番は特にどちらが先でも問題ありません) またClearはクリアボタンの事でしょうか? 初心者レベルの質問ばかりで本当にすみません。自分では十分難易度が高いので、理解できるようにしっかり勉強したいと思います。

関連するQ&A

専門家に質問してみよう