こんにちは。
非常に初歩的な質問かと思いますが、教えてください。
いろんなサイト様を探してみたのたですが、なかなか上手くいかず・・・
使用ソフトは、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]と表示されてしまいます。
イメージ通りにすることは可能でしょうか?
誠に恐れ入りますが、どうぞ宜しくお願いいたします。
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')}}");
};
---------------------------
イメージ通りに出来ました!
JavaScript記述の方でしたか。
大変失礼を……(汗)
ご回答ありがとうございました。
とても助かりました。
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
早速のご回答、ありがとうございます。
私も、HTML側に実行させたら楽だと思うのですが、このFlashバナーは他の方も使う予定がありまして。
出来れば、先方の負担を軽減できないかなと(汗)。
でも、難しいようであれば、HTML側にも記述をお願いするしかないですよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Chrome(クローム) 【 Chrome 】鎖のアイコンの「Copy Link Text」が機能しなくなりました。 1 2023/03/27 10:32
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PDF こんなPDF作れますか? 6 2022/05/13 11:14
- アジア シンガポールのMRT乗車でクレジットカードのタッチ決済を使用した場合の料金 2 2022/12/11 16:42
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- Windows 10 MSアカウントの「個人設定をクラウドから削除します」は機能していないのでしょうか? 1 2022/11/20 17:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
upc 7915と mc7915ctは互換性有...
-
AS3 mc0~5をまとめて処理する
-
VBAユーザーホームテキストボッ...
-
VBScriptでMsgBoxのYesNoボック...
-
別のアプリケーションのテキス...
-
漢字入力した値のカタカナ変換...
-
photoshopで書いた四角の枠の中...
-
else if文の順序を変えることに...
-
五芒星は、悪魔崇拝とどういう...
-
テキストボックスの中身をリセ...
-
楕円の軌道に傾斜をつける方法...
-
コモンダイアログのshowopenに...
-
Fireworks4の写真の切り取り方...
-
SNMPの標準MIBについて
-
画面の範囲選択
-
Flash5:2つのGIF画像でシェイ...
-
オブジェクトのランダムな位置表示
-
DirectXでのicoファイル読み込み
-
【ExcelVBA】ファイル名をセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
VBAユーザーホームテキストボッ...
-
テキストファイルから読み込ん...
-
外部SWFファイルを再生バーでコ...
-
AS3 mc0~5をまとめて処理する
-
ロールオーバーで下画像を表示...
-
エンドロール風テキストの表示...
-
看護師です。体温表のマクロを...
-
縦横比率のを変えずに画像のサ...
-
photoshopで書いた四角の枠の中...
-
YOASOBI
-
VBScriptでMsgBoxのYesNoボック...
-
プログラミング、アーキテクチ...
-
python ボタンを押すと複数の関...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
五芒星は、悪魔崇拝とどういう...
-
else if文の順序を変えることに...
-
RPG(AS400)の本、サイトってあ...
おすすめ情報