- ベストアンサー
空のMCに外部画像jpgを設定する方法
- 空のMCを作成し、Photogallery内に使用する外部のJPGイメージを呼び出す方法について教えてください。
- JPGイメージに名前(インスタンス名)を付けて、マウスでドラッグしたい場合のコードについても教えてください。
- 使用する環境はXP、CS4 アクションスクリプト2.0です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ロードしたJPEGに名前(インスタンス名)を付けるのでしたら そのJPEGをロードするムービークリップに名前を付ければ良いだけです。 つまり簡単なことです。 問題はそうではなくて JPEGをロードするムービークリップに onRelease=function(){} のような イベントハンドラメソッド が設定できないということではないでしょうか? ムービークリップにJPEGなどをロードすると そのムービークリップはJPEGに乗っ取られてしまいますが そのとき すでに設定してある イベントハンドラメソッド も消えてしまうのです。 解決方法は大きく分けて2つあります。 1つ目は イベントハンドラメソッドを設定するムービークリップ(=親MC)内に JPEGをロードするムービークリップ(=子MC)を作成して その 子MC に JPEG をロードする方法です。 2つ目は JPEGをロードするムービークリップにJPEGをロードし, 完全にロードされた状態になってから(ロード待ちをしてから) そのムービークリップに イベントハンドラメソッド を設定する方法です。 上記1つ目の方法は 入れ子状態のムービークリップを作れば良いだけですから簡単です。 2つ目の方法は 実際にスクリプトを書かなければわかりにくいと思うのでこの方法について書きます。 ◎ ファイル構造 任意のフォルダ ├任意のフォルダ │ ├○○.html │ └○○.swf(○○.fla) └images(フォルダ) └image1.jpg ◎ ○○.fla _root のステージ上には 「targetlargeMC」というインスタンス名を付けたムービークリップを すでに用意してあるものとします。 その他 本題とは関係ない雑多な物(handMC など)は存在しないものとします。 (問題解決には問題の切り分けが大切です。問題をシンプルに!) (本来,雑多なものは質問者が削除しておくべきです。) (そういう肝腎な作業をしていないことが問題解決できない最大の原因ですよ。) ◎ ○○.fla の _root のフレームに書くスクリプト ------------------------------ //ロードを監視するオブジェクトを作成 var obj:Object = new Object(); //MovieClipLoaderインスタンスを作成 var mcl:MovieClipLoader = new MovieClipLoader(); //JPEGロード完了時の動作を定義 obj.onLoadInit = function(target:MovieClip):Void { target.onPress = function():Void { this.startDrag(); }; target.onRelease = target.onReleaseOutside = function ():Void { this.stopDrag(); }; }; //mclのリスナーとしてobjを登録 mcl.addListener(obj); //targetlargeMCをターゲットにJPEGをロード mcl.loadClip("../images/image1.jpg", targetlargeMC); ------------------------------ ActionScript 2.0 要 Flash Player 7 以上
お礼
毎回ご丁寧なご回答誠にありがとうございます。 <その他 <本題とは関係ない雑多な物(handMC など)は存在しないものとします。 <(問題解決には問題の切り分けが大切です。問題をシンプルに!) <(本来,雑多なものは質問者が削除しておくべきです。) <(そういう肝腎な作業をしていないことが問題解決できない最大の原因ですよ。) 上記ごもっともです。無駄な時間をご回答者様にかけてしまい、すみませんでした。 2選択頂きましたが、1で問題なく作動しました! ありがとうございました