onClipEvent (load)でリンク先を指定ウインドウ(フレーム)に開くには?

このQ&Aのポイント
  • 本に載ってたスライドするメニューを利用してやってみたんですが、ボタンをクリックしたときのURLのジャンプ先を指定ウインドウ(フレーム内の右側フレーム:フレーム名migi)にしたいんです。
  • urls[0] = "abc.html","migi"というようにジャンプ先を指定しても、同じフレーム(hidari)になってしまいます。
  • このスクリプトではgetURLを使うことはできないので、どのように指定すれば良いか教えてください。
回答を見る
  • ベストアンサー

onClipEvent (load)でリンク先を指定ウインドウ(フレーム)に開くには?

本に載ってたスライドするメニューを利用してやってみたんですが、ボタンをクリックしたときのURLのジャンプ先を指定ウインドウ(フレーム内の右側フレーム:フレーム名migi)にしたいんです。 メニューの.swfはフレームhidariにおいてます。 スクリプトは下記のように書いてあって、これに、 urls[0] = "abc.html","migi"; ↑というように、 ,"migi" をつけてもジャンプは同フレーム(hidari)に なってしまってできませんでした。 どういうふうに指定すればいいかわかりますか? このスクリプトだと、getURLは使えないですよね? どなたかわかりましたら教えてください。 よろしくお願いします。 (↓スクリプト) onClipEvent (enterFrame) { nowY = _root._ymouse; if (drag) { // ドラッグ処理 posSlide = startSlideY + ( nowY - startY ); Diff = nowY - oldY; oldY = nowY; } else { // 非ドラッグ処理 posSlide = this._y + Diff - 1; Diff = Diff * 0.9; } // 折り返し処理 if (posSlide <= -pic_width*pics) { posSlide = posSlide + pic_width*pics; } else if (posSlide > 0) { posSlide = posSlide - pic_width*pics; } this._y = posSlide; } onClipEvent (load) { // ドラッグ状態の有無 drag = 0;      // リンク先 urls = new Array(); urls[0] = "abc.html"; urls[1] = "def.html"; urls[2] = "ghi.html"; // イメージの枚数 pics = 3; // イメージの縦幅 pic_width = 75; // Y軸方向の移動量 Diff = 200;           (以下つづく…)

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

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

よほどの事情がない限り、HTML ページを表示するには getURL を使います。 HTML ページを表示する時の getURL の書式は、  getURL( "URL" , "リンク先を表示するフレームやウィンドウの名前" ); です。 今回は右側のフレーム”migi”にリンク先を表示したいのですから、第2引数(2番目のパラメータ)で"migi"を渡します。 おそらくですが、配列 urls を使ってリンク先のリストのようなものを作り、ボタンがクリックされた時に、対応する urls の内容を見てリンク先を表示する仕組みではないかと思います。  getURL( urls[ 0 ] ); このようなスクリプトが書かれている箇所を、探してください。配列のインデックス番号の指定に変数が使われていても、原理としては同じです。 (ボタンが押された時に、ボタンの番号を変数に入れておき、この値を利用して配列の中身を見る、といったところです) 第2引数に"_self"などの文字列が付いている可能性もありますが、とにかく、getURL で配列 urls の中身を利用している箇所です。 ボタンのインスタンスに設定されているアクションか、ボタンのインスタンス名.onPress(または onRelease ) = function ・・・など、ボタンが押された時の処理をしているあたりがヒントです。ボタンが押された時に何かの関数を呼び出しているようでしたら、その関数が定義されている部分にあるかと思います。 getURL が見付かったら、  getURL( urls[ 0 ] , "migi" ); と、第2引数でフレームの名前を指定してみてください。 ボタンの数だけ getURL が使われている場合は、全ての部分で変更が必要です。 また、"migi"にあたる部分が  getURL( urs[ 0 ] , target_frame ); のように、変数になっている可能性もあります。(名前は違うと思いますが) この場合は、target_frame に  target_frame = "_self"; と、フレーム名を代入している箇所がどこかにあるはずです。これを、"migi"に変更してください。 ご質問文にあるスクリプトは、見たところ、ムービークリップの表示位置を決める計算と、配列 urls にリンク先を入れるなどの初期設定をしている部分と思われます。さしあたって、リンク先を表示するフレームの指定とは関係なさそうです。

teddywan
質問者

お礼

ありがとうございます。 よーくflaファイルを調べてみたら、getURLが書いてある場所が見つかりました。 質問に書いたscriptはスライドメニュー自体のスクリプトで、実際にリンクする画像のボタンに下のようにgetURLのスクリプトが使ってありました。 on (release, releaseOutside) { _parent.drag = 0; _parent.endY = _root._ymouse; if ((_parent.startY == _parent.endY) && (url != null)) { getURL(url); } とあったので、 getURL(url , "migi"); と書いてみたら、できました!! 本当に助かりました。 ありがとうございました!!

関連するQ&A

  • ドラックすると移動し、クリックすると地名インスタンスが複数選択される地図作成

    Flashで地図を作成しています。 大きめの地図なのでマスクをかけ、ドラックすると地図が移動され、非表示になっている箇所も表示できるように作成しました。 この地図に対して、更に各地名インスタンスを複数選択でき、選択された地名を地図横にテキストとして羅列させる仕組みを作りたいと思います。 移動する時の動作として、配置している全体地図をmap_mcとし、そのムービークリップに対して下記のようにスクリプトを記述しました。 onClipEvent (load) { press_flg = false; drag_flg = false; } //マウスのボタンが押されたら onClipEvent(mouseDown) { press_flg = true; } //マウスポインタが動かされたら onClipEvent(mouseMove) { if(press_flg && (!drag_flg)) { hidari = Stage.width-this._width/1.22; ue = Stage.height-this._height/1.2; migi = this._width/3.6; sita = this._height/3.3; this.startDrag(false, hidari, ue, migi, sita); drag_flg = true; } } //マウスボタンが押されて離されたら onClipEvent(mouseUp) { if(drag_flg) { this.stopDrag(); } else { ※空欄; } press_flg = false; drag_flg = false; } //マウスボタンが押され、範囲外で離されたら on(release, dragOut) { this.stopDrag(); press_flg = false; drag_flg = false; } 今は動作確認のため、「※空欄」箇所にgetURLなどの記述をしていますが、ここにどのようなスクリプトを記述すれば希望の動作をするのかわからず、ネットで検索しても参考になるものを見つけられずにいます。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 指定したフレームから再生できない(フラッシュ)

    あるフレームになって時点で指定したフレームに飛び、そこからフレームを再生させようとおもっています。 指定したフレームへ飛ぶ事ができるのですがそこからストップしてしまいます。 どうか打開策を教えて頂けないでしょうか? お願します。 あるクリプトに下記の内容のスクリプトが埋め込まれていてそこで指定したフレームに飛ぶようにしています。 onClipEvent(enterFrame){ _x -= 5; if(_x <= 10){ _root.gotoAndPlay("bbb",11); } if(_x <= -600){ _x = 600; } }

  • フレームとBODYについて

    フレームで作成したページににメニューを表示したいのですが、うまくいきません。 <BODY onScroll="setMenu"> <FRAMESET COLS="80,*" FRAMEBORDER=0 BORDER=0 FRAMESPACING=0> <FRAME SRC="hidari.html" NAME="HIDARI"> <FRAME SRC="migi.html" NAME="MIGI"> </FRAMESET> <DIV ID="fMENU" STYLE="POSITION:ABSOLUTE; TOP:0; LEFT:0;"> <IMG SRC="../img/var.jpg" NAME="VAR" WIDTH=101% HEIGHT=25 STYLE="filter:Alpha(opacity=40);" onMouseOver="change(this,100);" onMouseOut="change (this,40);"> <script src="detail.js"></script> </DIV> とするとメニューは表示されますが、フレームが表示されません。 <FRAMESET COLS="80,*" FRAMEBORDER=0 BORDER=0 FRAMESPACING=0> <FRAME SRC="hidari.html" NAME="HIDARI"> <FRAME SRC="migi.html" NAME="MIGI"> </FRAMESET> <BODY onScroll="setMenu"> <DIV ID="fMENU" STYLE="POSITION:ABSOLUTE; TOP:0; LEFT:0;"> <IMG SRC="../img/var.jpg" NAME="VAR" WIDTH=101% HEIGHT=25 STYLE="filter:Alpha(opacity=40);" onMouseOver="change(this,100);" onMouseOut="change (this,40);"> <script src="detail.js"></script> </DIV> とすると、メニューは表示されませんが、フレームは表示されます。 両方表示させたい場合はどうしたらいいでしょうか?

    • ベストアンサー
    • CSS
  • mcのx座標が50以上になったら次フレーム

    タイトルどおり、 mcのx座標が50以上になったら次フレーム という処理をしたく、 mcに次のアクションスクリプトを記述しました。 onClipEvent(enterFrame){ this._x += 10; } onClipEvent(load){ if(this._x >= 50){ nextFrame(); } } しかし何故か次のフレームに行ってくれません。 どこか間違っているのでしょうか。。。 nextFrame();をgotoAndPlay(2);にしても駄目でした。

    • ベストアンサー
    • Flash
  • ユーザ関数の呼び出し方法 その2

    ユーザ関数の呼び出し方法 http://oshiete1.goo.ne.jp/qa3567728.html で、質問をさせて頂いた者です。 お陰様で、だいぶ出来てきました。 frameで左右に分かれています。 「左がメニュー画面」 「右がデータを表示する画面」 メニュー用のPHPに //処理部分 <?php if($_GET["mode"] == 1){ //処理1のスクリプト include("./ee.php"); ads(); } と、しました。 そうすると 左のメニュー画面にデータが表示されてしまいます。 右のデータを表示する画面に更新したい場合 どのように書けば宜しいですか? --------------- <frame name="hidari" src="aa.php"> <frame name="migi" src="ee.php">

    • ベストアンサー
    • PHP
  • ムービークリップ再生後次のフレームへ移動しません

    アクションスクリプトを使って、テキストが下から上へ流れるようにムービークリップを再生し、テキストが流れ終わったところで次のフレームへ移動させたいのですが、フレームが移動せず困っています。 スクリプトは色々なところで調べて、やっとの事で下記のように書きました。 使用しているのはFlash MX 2004 です。 |○  □|○|  ←1.スクリプトレイヤー |●    □|  ←2.ムービークリップレイヤー |○|●→|●|  ←3.ムービークリップ後に再生したいレイヤー 1.のスクリプト(2つのキーフレームいずれとも) stop(); 2.のムービークリップのスクリプト onClipEvent (load) { spd =5; onClipEvent (enterFrame) { this._y = this._y-spd; if (this._y<=-10) { spd = 0; gotoAndPlay(2); } } 知り合いにお見舞いのメッセージをと思って作ったのですが、送ることが出来なくてとてもあせっています。 どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • ウインドウサイズを変更してもつねにセンタリング

    大変困ってますので、どなたか知恵を貸していただけないでしょうか? Divで作ったレイヤーを画面サイズをユーザーが変更してもつねに中央に表示させるJAVAスクリプトで躓いています。 <script> function center(target) { var screenWidth = window.innerWidth; var layerWidth = document.getElementById("base").style.width; var diff = (screenWidth - layerWidth) / 2 ; if (diff <= 0) diff = 0; document.getElementById("base").style.left = diff; } </script> <style> #base { overflow: auto; position: absolute; width: 459; height: 344; z-index: 1; left: 269; top: 158; background-color: #FF6666; } </style> という、スクリプトを作ってみたのですが、上手く作動しません。 何方か、上記記述の修正をどうぞ、宜しくお願いします! (まったく別の方法でもかまいません…)

  • 別フレームからの背景切り替え

    同一ページでの背景切り替えは (1)<SCRIPT LANGUAGE="JavaScript"> <!-- Begin if (navigator.appName == "Microsoft Internet Explorer") { image_directory = "http://members.tripod.co.jp/oka1/"; clear = new Image(); clear.src = image_directory + "clear.jpg"; pic1 = new Image(); pic1.src = image_directory + "bg_wahuu.gif"; pic2 = new Image(); pic2.src = image_directory + "bg4.gif"; pic3 = new Image(); pic3.src = image_directory + "bg6.gif"; pic4 = new Image(); pic4.src = image_directory + "pgwck.gif"; pic5 = new Image(); pic5.src = image_directory + "ngllgch.gif"; pic6 = new Image(); pic5.src = image_directory + "wpckp.gif"; } function imagechange(imgName) { if (navigator.appName == "Microsoft Internet Explorer") { document.body.background = eval(imgName + ".src"); } } // End --> </script> /////////////////////////////////////////////////////////// (2)<a href="#" onMouseOver="imagechange('pic1');" onMouseOut="imagechange('clear');"><img src="http://www001.upp.so-net.ne.jp/oka/bg_wahuu.gif" border="0" width="144" height="158"></a> /////////////////////////////////////////////////////////// 以上の操作でできたのですが、 背景素材のサムネイルを別フレームに配置したい場合の、 別フレームからの背景切り替えの方法をご存知の方は教えていただけないでしょうか?

    • ベストアンサー
    • HTML
  • アクションスクリプトでのフレーム移動について

    FlashCS3 actionscript2.0で画像が1枚ずつフェードインしてきてサムネイル一覧になるようなものを作っています。 それぞれの写真をレイヤーに分けていれ、ラベルをつけています。 全ての写真インスタンスに飛び先のラベル名だけど変更して、下記のようにアクションスクリプトを記述しました。 ―――――――――――――――――――――――――――――― onClipEvent (load) { this._alpha = 0; } onClipEvent (enterFrame) { if(this._alpha < 100){ this,_alpha += 2; } if(this._alpha >= 80){ _root.gotoAndStop("pic02"); } } ―――――――――――――――――――――――――――――― が、1つめの写真と2つめの写真はフェードインしてきて表示されるのですが、3つめの写真以降が読み込まれません。 ラベルの番号をずらすと、その一の写真は読み込むのですが、次のラベルにはジャンプしてくれません。 原因が分かる方がいらっしゃいましたら、ぜひおしえてください。 よろしくおねがいします。

    • ベストアンサー
    • Flash
  • Now Loadingから次のフレームに行かない

    Flash8です。 1フレームに全体のサイズを読み込むスクリプト ------------------------- this.onEnterFrame = function() { nParcent = (_root.getBytesLoaded()/_root.getBytesTotal())*100; if (nParcent == 100) { _root.play(); delete this.onEnterFrame; } }; _root.stop(); ------------------------- と、%を数字で表記するためのスクリプト ------------------------- onClipEvent (enterFrame) { num = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100); _root.nowloading.percent = num+"%"; } ------------------------- を入れていて、100%読み込んだら次のフレームより開始(再生)したいのですけど、 現状読み込んで(数字も0から100に上がって行って)、100%になった状態でストップして再生しません。 何が足りないのでしょうか? アドバイスお願いします!

専門家に質問してみよう