- ベストアンサー
flash getURL設定
フラッシュバナーの制作をしているのですが、 バナー範囲内全部にgetURL を設定したいのですが、 方法が分かりません。教えてください。。(至急)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1の方の書かれていらっしゃる方法が一般的な方法です。 全く異論はありません。 あえて#1の方の回答のを補足するとすれば, リンクバナーの場合他サイトにジャンプするのが普通で, 他サイトにジャンプする場合は, ターゲットウィンドウが普通は _blank(新窓)ですから, ターゲットウィンドウ を _brank にしておく方が良いかもしれないということです。 透明ボタンに書くスクリプト例↓(Googleへジャンプ)。 ------------------------------------------ on (release) { getURL("http://www.google.co.jp/", "_blank"); } ------------------------------------------ ※補足(余談) 最近はリンク先を新窓で開くことは W3C などで推奨されていません。 また,XHTML 1.1 や XHTML Basic においても採用されていません。 しかし,2007年2月16日に公開されたXHTML 1.1の第二版(案)では target属性が利用できるように定義が改められたらしいです(単なる案)。 ///////////////////////////////////////////////////////////// なお, このご質問を機に,他の方法も模索してみました。 余計なお世話だとは思いましたが, 勝手にいくつかの別法を回答させていただきます。 次のいくつかの例は, 全てムービークリップやボタンなどを手作業で作る必要はありません。 スクリプトをコピペするだけでバナー(Flash)全体にリンクをかけることができる方法例です。 だだし,リンク先の URL のみは変えてください。 また, 全ては _root(メインムービーのタイムライン) の フレーム1 に書く(コピペする)スクリプトです。 また, 全ては Flash MX 以上(MX,MX2004,8,…) で使用可能なスクリプトです。 ちなみに,全てActionScript1.0形式に統一しています。 ◎ onMouseUpハンドラ を _root に設定した例 -------------------------------------------- _root.onMouseUp = function() { getURL("http://www.google.co.jp/", "_blank"); }; -------------------------------------------- ※ただし上記スクリプトでは,カーソルが ハンドカーソル(指差しカーソル)に変わりません。 ◎ マウスクラスのメソッドを使用した例 -------------------------------------------- // リスナー用インスタンスを作成 var myMouse = new Object(); // マウスクリック時の動作定義 myMouse.onMouseUp = function() { // 任意のURLを別ウィンドウで開く getURL("http://www.google.co.jp/", "_blank"); }; // インスタンスをマウスクラスのリスナーに登録 Mouse.addListener(myMouse); -------------------------------------------- ※ただし上記スクリプトも,カーソルが ハンドカーソル(指差しカーソル)に変わりません。 ◎ ムービークリップをスクリプトで作成して利用する例 -------------------------------------------- // 空のムービークリップを 深度1 に作成 _root.createEmptyMovieClip("myMC", 1); // 空のムービークリップ内に透明な四角を描画 with (_root.myMC) { beginFill(0x0000FF, 0); lineStyle(0, 0xFFFFFF, 0); moveTo(0, 0); lineTo(Stage.width, 0); lineTo(Stage.width, Stage.height); lineTo(0, Stage.height); endFill(); } // 透明な四角のムービークリップをクリックしたときの動作 _root.myMC.onRelease = function() { // 任意のURLを別ウィンドウで開く getURL("http://www.google.co.jp/", "_blank"); }; -------------------------------------------- ◎ テキストフィールドをスクリプトで作成して利用する例 -------------------------------------------- // テキストフォーマットクラスのインスタンスを作成 var myFormat = new TextFormat(); // リンク先の設定 myFormat.url = "http://www.google.co.jp/"; // ターゲットウィンドウの設定 myFormat.target = "_blank"; // ステージの大きさのテキストフィールドを 深度1 に作成 _root.createTextField("myText", 1, 0, 0, Stage.width, Stage.height); // テキストをHTMLとしてレンダリング myText.html = true; // 501 文字ばかり半角空白文字を入れておく for (i=0; i<=500; i++) { myText.text += " "; } // テキストフィールドにテキストフォーマットを適用 myText.setTextFormat(myFormat); -------------------------------------------- 以上は,同様なことができる可能性を考えただけのもので, 普通はバナーのリンクとしては使わない,実験的で奇妙な方法も含まれています。 何か他のときにでも役に立つことがあるかもしれないという,単なるメモ書きのようなものだと思ってください。 ///////////////////////////////////////////////////////////// ~ さらに追加メモ書き(未検証の空想) ~ 「Flash Professional 9 ActionScript 3.0 Previewについて」 http://www.adobe.com/jp/devnet/flash/articles/flash9_as3_preview_print.html 上記ページによると, Flash 9 (ActionScript3.0)からは, MovieClip クラス に buttonMode プロパティというものが出没するらしく, ムービークリップ.buttonMod = true; などと書くと,ムービークリップの上にカーソルを置くだけで, カーソルがハンドカーソル(指差しカーソル)に変わるようなことが書いてありますがよくわかりません。 もし,これが実現すると, ひょっとしたらムービークリップの一員である _root に対して, _root.buttonMod = true; このようなスクリプトを書くことによって,上記の, ◎ onMouseUpハンドラ を _root に設定した例 ◎ マウスクラスのメソッドを使用した例 でも,カーソルをハンドカーソル(指差しカーソル)に変えることができるようになるかもしれません。 この件に関しましては未検証な単なる私の空想です。
その他の回答 (1)
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
バナー全体を覆うような大型のボタンを造り、そのボタンのアクションにgetURLを設定すれば良いです。 ボタンはアルファ指定で透明にすれば見えません。
お礼
ありがとうございます。 なんとか、大丈夫そうです。 あまりにも初心者で。。。 (>_<)