- ベストアンサー
外部から読み込んだ画像にリンクをつけたい
- ActionScript3.0でボタンをクリックすると外部から画像を読み込み、読み込んだ画像に外部リンクをつける方法について教えてください。
- 現在のプログラムを生かして変更するために参考になる方法を教えていただけると助かります。
- 初心者なので、分かりやすく教えていただけるとありがたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 ですから... 「contentLoader」に対してリンクを付けるんです。 言い換えると 「contentLoader」に対して,クリック時に別ページを開く関数を実行するイベントリスナーを追加するんです。 ※もしくは「contentLoader」にではなく 親の「contentMC」にリンクを付けても良いと思います。 その場合 buttonMode が true にできます。 回答字数制限で全文は書けないため 「~略~」の部分を省略しています。 ★付きの箇所が追加部分です。 ~~~~~~~~~ package { ~略~ import flash.net.navigateToURL; public class Main extends Sprite { private var contentMC:MovieClip; private var contentLoader:Loader; //コンストラクタ public function Main() { //外部ファイルを配置するムービークリップの生成 contentMC = new MovieClip ; ~略~ //Loaderオブジェクトを生成 contentLoader = new Loader ; contentMC.addChild(contentLoader); //ボタン処理 my1_btn.addEventListener(MouseEvent.CLICK,my1Handler); my2_btn.addEventListener(MouseEvent.CLICK,my2Handler); my3_btn.addEventListener(MouseEvent.CLICK,my3Handler); } //各ボタンをクリックしたときに外部ファイルを読み込む private function my1Handler(evt:MouseEvent):void { var url = "img/flashimg01.jpg"; loadContent(url); //★Loaderクリック時の動作 contentLoader.addEventListener(MouseEvent.CLICK,LD1Handler); } private function my2Handler(evt:MouseEvent):void { var url = "img/flashimg02.jpg"; loadContent(url); //★ 〃 contentLoader.addEventListener(MouseEvent.CLICK,LD2Handler); } private function my3Handler(evt:MouseEvent):void { var url = "img/flashimg03.jpg"; loadContent(url); //★ 〃 contentLoader.addEventListener(MouseEvent.CLICK,LD3Handler); } //★Loaderクリック時に別ページを開く関数 private function LD1Handler(evt:MouseEvent):void { var link:URLRequest = new URLRequest("http://www.yahoo.co.jp/"); navigateToURL(link,"_blank"); } private function LD2Handler(evt:MouseEvent):void { var link:URLRequest = new URLRequest("http://www.google.co.jp/"); navigateToURL(link,"_blank"); } private function LD3Handler(evt:MouseEvent):void { var link:URLRequest = new URLRequest("http://www.baidu.jp/"); navigateToURL(link,"_blank"); } //外部ファイル読込 private function loadContent(url) { var req:URLRequest = new URLRequest(url); contentLoader.load(req); } } }
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
「画像にリンクを付ける」などということを考えるから 難しくなるのではないでしょうか。 単純に, 最後の contentLoader.load(req); をするときに そのLoaderインスタンスに対して つまり 「contentLoader」 に対して リンクを付ければ良いと思います。
お礼
BlurFiltan様 回答ありがとうございました! とりあえず一つにリンクをつけることが出来ました! 画像にボタンアクションをつけて… と難しく考えてしまったので混乱してしまいました。 続きをもう少しやってみようと思います。 本当にありがとうございました。
補足
BlurFiltan様 最後に下記のようにリンクをつけてみましたが、 画像を押したタイミングではなくて、ボタンを押したタイミングで外部リンクされてしまいました>< 画像を押してリンクさせたいのですが… //外部ファイル読込 private function loadContent(url){ var req:URLRequest = new URLRequest(url); contentLoader.load(req); var link1:URLRequest=new URLRequest("http://www.yahoo.co.jp/"); navigateToURL(link1,"_blank"); }
お礼
BlurFiltan様 分かりやすくて丁寧な回答をありがとうございます! プログラムは全然分からなくて、 AS3.0は本や色んなサイトを見ながらやってるのですが、チンプンカンプンで。。。 教えていただいたソースを元に色々やっていこうと思います。 本当に助かりました!ありがとうございました。