Flashからリンクする際のconfirmの記述

このQ&Aのポイント
  • Flashバナーから外部ページへのリンクを確認するためにconfirmを使用する方法についての質問です。
  • 現在の実装ではダイアログが表示されるもののOKをクリックしてもキャンセルをクリックしても別ウィンドウで外部ページが開かれます。
  • また、Flashバナーが貼ってあるページには真っ白な画面と[object]が表示されます。
回答を見る
  • ベストアンサー

Flashからリンクする際のconfirmの記述

こんにちは。 非常に初歩的な質問かと思いますが、教えてください。 いろんなサイト様を探してみたのたですが、なかなか上手くいかず・・・ 使用ソフトは、suzukaです。 簡単なムービークリップは作るのですが、アクションスクリプトはあまり使用したことがありません。 Flashバナーから外部ページへリンクする際、「confirm」を使用して、外部リンクということを表示させたく思っています。 イメージとしては、Flashバナーをクリックすると【外部ページを開きます】とダイアログが表示されます。 そのダイアログの、【OK】をクリックすると別ウィンドウで外部ページが開き、キャンセルをクリックするとダイアログだけが消えます。 【OK】と【キャンセル】、いずれの場合もFlashバナーが貼ってあるページは残ります。 フレームアクションには下記のように記述していますが、イメージ通りになりません。 ***************************************************************** // 空のムービークリップ link_mc を深度 0 に作成 this.createEmptyMovieClip("link_mc", 0); // link_mc にステージの大きさの透明な塗りを作図 link_mc.beginFill(0x000000, 0); link_mc.moveTo(0, 0); link_mc.lineTo(Stage.width, 0); link_mc.lineTo(Stage.width, Stage.height); link_mc.lineTo(0, Stage.height); link_mc.lineTo(0, 0); link_mc.endFill(); // link_mc をクリックしたときの動作を定義 link_mc.onRelease = function() { // リンク先 を 別窓で開く getURL("javascript:window.confirm('外部ページを開きます') ? window.open('リンク先のアドレス','target') "); ***************************************************************** ダイアログは表示されるのですが、【OK】をクリックしても【キャンセル】をクリックしても、別ウィンドウで外部ページが開いてしまいます。 しかも、Flashバナーが貼ってあるページには、真っ白な画面で[object]と表示されてしまいます。 イメージ通りにすることは可能でしょうか? 誠に恐れ入りますが、どうぞ宜しくお願いいたします。

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

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

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

親元のページが 真っ白画面で[object] 状態になるのは、 window.open の実行で戻り値 「Wondowオブジェクト」 が返ってくるからだと思います。 戻り値表示を回避するには link_mc をクリックしたときの動作を以下のようにすれば良いと思います。 組み合わせによって数通りの書き方ができますが 一応、3~4例書いてみます。 ※「AAA.html」 は、仮リンク先URL です。 ※getURL の ( ) 内が改行しているように   見えるかもしれませんが改行ナシの1行です。 --------------------------- // link_mc をクリックしたときの動作を定義 link_mc.onRelease = function() { // リンク先 を 別窓で開く getURL("javascript:if(window.confirm('外部ページを開きます')){window.open('AAA.html');void(0)}"); }; ---------------------------   ↑または↓ --------------------------- // link_mc をクリックしたときの動作を定義 link_mc.onRelease = function() { // リンク先 を 別窓で開く getURL("javascript:if(window.confirm('外部ページを開きます')){void(window.open('AAA.html'))}"); }; ---------------------------   ↑または↓ --------------------------- // link_mc をクリックしたときの動作を定義 link_mc.onRelease = function() { // リンク先 を 別窓で開く getURL("javascript:window.confirm('外部ページを開きます') ? void(window.open('AAA.html')) : void(0)"); }; --------------------------- あと、 「ものは試し」と思ってやってみましたら これでもできました↓。 --------------------------- // link_mc をクリックしたときの動作を定義 link_mc.onRelease = function() { // リンク先 を 別窓で開く getURL("javascript:if(window.confirm('外部ページを開きます')){window.open('AAA.html')};this.href"); }; --------------------------- 以上では 一応 ActionScript の修正案を書いていますが 内容的には ActionScript は全く関係なくて、 全て JavaScript の仕様に対する対処法ですよ。 (HTML から a href を実行するときの対処法でも同様の事項が出てきます。)     =/=/=/=/=/=/=/=/=/=/= その他 Suzuka で [SWF8] を生成する設定にしている場合は ExternalInterface クラスが使えますから これを使ってみても良いかもしれません。 ※同じく 「AAA.html」 は、仮リンク先URL です。 ※同じく ExternalInterface.call の ( ) 内が   改行しているように見えるかもしれませんが   改行ナシの1行です。 --------------------------- // link_mc をクリックしたときの動作を定義 link_mc.onRelease = function() { // リンク先 を 別窓で開く flash.external.ExternalInterface.call("function(){if(window.confirm('外部ページを開きます')){window.open('AAA.html')}}"); }; ---------------------------  

sizuru1220
質問者

お礼

イメージ通りに出来ました! JavaScript記述の方でしたか。 大変失礼を……(汗) ご回答ありがとうございました。 とても助かりました。

その他の回答 (1)

  • mat-21
  • ベストアンサー率56% (91/162)
回答No.1

FlashのActionScript「getURL」に全ての「JavaScript」を実行させていますが、FlashのAcrionScriptに直接JavaScriptを実行するのではなく、HTML側に関数(function)として定義し、FlashのActionScript側では、その関数(function)を実行させてみてはいかがでしょうか? ▼HTML側 <script language="javascript" type="text/javascript"> function poppage(linkadd){ if(window.confirm('外部ページを開きます')){ window.open(linkadd); } } </script> ▼Flash ActionScript側 getURL("javascript:poppage('リンク先のアドレス')"); 正常に動作しなかったらごめんなさいm(_ _)m

sizuru1220
質問者

お礼

早速のご回答、ありがとうございます。 私も、HTML側に実行させたら楽だと思うのですが、このFlashバナーは他の方も使う予定がありまして。 出来れば、先方の負担を軽減できないかなと(汗)。 でも、難しいようであれば、HTML側にも記述をお願いするしかないですよね。

関連するQ&A

  • フラッシュバナーのリンクについて

    フラッシュを使ってバナーをつくり、いざ他のページから リンクでそのバナーを表示させようとしたら、フラッシュは表示される のですが、クリックしてページが移動できませんでした。 <a href="abcd.html"> <embed src="http://*******bana1.swf" width="460"height="60"> </embed> </a> タグをこのように書きましたが、abcd.htmlにリンクされるには どうすれば良いのでしょうか。 お分かりになる方、よろしくお願いします。

    • ベストアンサー
    • HTML
  • confirm()をはい/いいえ に切り替える。

    javascriptのダイアログボックスの表示でconfirmは「はい/キャンセル」という選択肢になっていると思いますが、これを「はい/いいえ」に切り替える方法はないでしょうか? app.alertを使えばいいというような記述をちらほらみたのですが、app.が定義されていませんとエラーになります…。

  • flashのリンク付きバナーを埋め込んだのですが、マウスカーソルの表示

    flashのリンク付きバナーを埋め込んだのですが、マウスカーソルの表示が変です。 比較的、flashのリンク付きバナーがたくさん(7、8個)埋め込まれているページを制作しています。flashのリンクバナーの最後から2つのバナーだけにポインタを合わせた時、矢印と指の形に切り替わり続けます。 クリックすると、リンク先のページは開かれるのですが、バナーにポインタを合わせると延々とパタパタ切り替わる状態に。。。 バナーと同じ大きさのボタンインスタンスを配置し、ボタンアクションとして on (release) { getURL("http://www.aaa.com","_blank"); }と記述しても、 on(rollOver) { this.useHandCursor = true; }(※これは必要ないと思うのですが…) と記述しても同じ症状が出ます。 対処方法がわかる方がいましたら、教えてください。 よろしくお願い致します。

  • バナーフラッシュの作り方を教えて

    こんにちは。 下記のサイトのようなフラッシュを自作したいのですが、 作り方がわかりません。 http://www.st-image.com/ ・大きなバナーは自動的に数秒ごとに切り替わり、 クリックするとリンク先ページへジャンプする。 ・ミニバナーをクリックすると、大きなバナーが切り替わる。 この作り方が載っている、ウェブページか本を教えてください。 ソフトは、Adobeのフラッシュのソフトを持っていますが、 買ったきり使い方がわかっていません。 他のソフトへの乗り換えでもOKですので、 なるべく簡単なものを教えてください。 ほかのフラッシュは作る予定がありませんので、 今回のケースだけで考えてよいです。 よろしくお願いいたします。

  • Flash cs3のActionScript3.0でリンクを設定する方法

    Flash cs3のActionScript3.0でリンクを設定する方法を教えて下さい。 Yahooのトップページにあるバナー広告のように画面のどこをクリックしてもリンク先に飛べるようにしたいです。 またビヘイビア(ActionScript2.0)でリンクを設定し作成したボタンをクリックすると 『実行されようとする操作の安全性が確認されていない為、Adobe Flash Playerは停止しました。』 と表示されます。 どうしたら表示されずリンク先にとべるでしょうか? アドバイスよろしくお願いします。

  • Flashランダム表示にリンクをプラスさせたい

    数種類のフラッシュムービー(swfファイル)をこちら(http://oshiete1.goo.ne.jp/qa1362260.html)の方法で表示させることはできたのですが、さらにリンクを持たせるにはどういった方法をとればいいでしょうか? 通常のムービーに透明な画像を重ねてリンクをおく方法では動きませんでした。リンク先は一つだけです。 ムービーだけランダムに表示して、クリックすれば同じ場所にリンクするという感じのFLASHバナーを作りたいと思ってます。 どうかよろしくお願いします。

    • ベストアンサー
    • Flash
  • フラッシュにリンクを付けるには

    FlashMakerを使って、フラッシュをクリックすると特定のページへ飛べるように設定したいのですがどうすればいいのか色々調べているのですが解りません。 他にFlashMXも持っているのですが難しくて皆目見当も付きません。 クリックでページへリンクする方法を教えて下さい。

  • Flashでのリンクが飛べない。

    Flash8でバナーを作成し、バナーに透明ボタンを配置し下記のような アクションスクリプト2.0を記述いたしました。 ----------------------------------------------------- on (release) { getURL("http://www.*****.co.jp/****/**/"); } ----------------------------------------------------- サーバーにアップを行い、リンクを確認したところ、 Windows(OS:XP)では問題なくリンク先ページへ飛べるのですが、MAC(OS:X & 9)では飛べませんでした。 ※リンクがある時に表示される手のカーソルにはなりますが、クリックをしても飛べない状態です。 オペラ、サファリ、ファイヤーフォックスそれぞれで試したのですが、 MACでは飛べませんでした。 mac用に何か特別な設定を入れる必要があるのでしょうか。 行き詰ってしまったため、ご教授いただきたく思っております。 よろしくお願いいたします。

  • フラッシュのリンク

    HPを今作っていまして フレームを横分けに上から順に menu.top.underと三分割して menuフレームにフラッシュで作った メニューをおいたのですが リンクがうまくいきません。 on(release){ cont_mc.gotoAndStop(2); this.gotoAndStop(1); } on(release){ getURL("http://www.yahoo.co.jp/"); } と打つとページ全体が そのページへととんでしまいますよね。 フレーム三分割のなかの真ん中(top)のページに ページを表示したい場合は どう打ち込めばよいのでしょうか アドバイスお願いします。

  • 外部画像ファイルへのリンクについて

    ALL FLASHのサイトを作製しているのですが、外部画像ファイル(GIFかJPG)を読み込んで、ユーザーが閲覧した時に右クリックでDL出来るような仕組みは出来ますでしょうか? テキストは何とか右クリックでコピー出来るようなのは、わかりましたが・・・。 あと、他社のサイトのバナー画像を直リンクでFLASHに取り込みたいのですが、どうすれば出来るでしょうか?(相手先でバナーデザイン変更があった場合に対応しやすい為) 右クリックで保存が出来ないにしろ、外部画像を表示させる方法などあればお教えいただきたいです。 宜しくお願い致します。