トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     外部JPG読み込みMCをボタンとして扱う場合のアクション
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
joyko
Åê¹ÆNo.38625
投稿日時: 2008-5-1 0:24
常連
居住地: 埼玉県
投稿: 167
使用環境:
WinXP(SP3)
Flash8 Basic
FlashCS3
Flash CS4
外部JPG読み込みMCをボタンとして扱う場合のアクション
皆さん、
今晩は。
いつもお世話になってます。

先ず、宜しければ、質問になる単純化したサンプルをご覧になって頂きたいと思います。CS3を使用し、AS2.0で、Professional8で保存してます。

http://homepage2.nifty.com/joys/questions/mcbtn_for/frame_clip.html

質問内容は、

1)外部JPGを、MovieClip.loadMovie();で読み込み、それを、ボタンとして扱う場合、シーン上のフレームアクションとMovieClipに直接記載する、クリップアクションの間に差が出てしまっているので、その差に関してのものです。その差とは、フレームアクションですと、ボタンとして、反応せず、クリップアクションですと、ボタンとして反応します。

2)サンプルは、シーンの第一フレームのスクリプトレイヤーに、

this.stop();//念のため
screen._xscale = screen._yscale=60;//外部jpgを60%の縮小率で読み込む(今回は、どうでもいい部分です)

/*mc1からmc4まで、外部JPGを、12%に縮小読み込み*/
for (i:Number=1; i<=4; i++) {
_root["mc"+i]._xscale=_root["mc"+i]._yscale=12;
_root["mc"+i].loadMovie("photo/"+i+".jpg");
}


/*mc1とmc3は、MovieClipに直接クリップアクションで記載し、MovieClipボタンとして、正常反応するが、
以下のフレームアクションで記載した、mc2とmc4は、ボタンとして、反応しないのは、なぜでしょうか?*/

mc2.onRelease = function():Void {
screen.loadMovie("photo/2.jpg");
};

mc4.onRelease = function():Void {
screen.loadMovie("photo/4.jpg");
};

//外部写真を読み込んでない、このmc5は、ボタンとして、反応します。
mc5.onRelease = function():Void {
screen.unloadMovie();
};
と記載し、

mc1とmc3には、直接クリップアクションで、

■mc1には、
on(release){
_root.screen.loadMovie("photo/1.jpg");
}

■mc3には、
on (release) {
this._parent.screen.loadMovie("photo/3.jpg");
}

としてます。

クリップアクションで、記載すれば、支障はないのですが、シーンのフレームに出来るだけ記載したいので、理由が分からず、質問させて頂いた次第です。

お教え頂けると、すっきり致します。
野中文雄
Åê¹ÆNo.38626
投稿日時: 2008-5-1 0:32
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
外部ファイルのロードが完了するのを待って、イベントハンドラメソッドは設定しなければなりません。Flash 8でしたら、MovieClipLoaderクラスを使うのが便利でしょう。

MovieClip.loadMovieで外部ファイルを読込む」より引用:
外部ファイルをMovieClip.loadMovieメソッドで読込むと、ターゲットインスタンスにスクリプトで設定したプロパティやメソッドなどはすべてクリアされます。これは、プロパティやメソッドをMovieClip.loadMovieメソッドの実行前に定義した場合ばかりでなく、実行直後に設定した場合も同じです。
...[中略]...
MovieClipの外部からインスタンスに設定したイベントハンドラメソッドも、外部SWFをロードするとクリアされます。イベントハンドラメソッドが外部SWFムービー内のフレームアクションに記述してあれば、もちろんロード後も有効です。

引用:
joykoさんは書きました:
1)外部JPGを、MovieClip.loadMovie();で読み込み、それを、ボタンとして扱う場合、シーン上のフレームアクションとMovieClipに直接記載する、クリップアクションの間に差が出てしまっているので、その差に関してのものです。その差とは、フレームアクションですと、ボタンとして、反応せず、クリップアクションですと、ボタンとして反応します。


----------------
 

joyko
Åê¹ÆNo.38627
投稿日時: 2008-5-1 0:41
常連
居住地: 埼玉県
投稿: 167
使用環境:
WinXP(SP3)
Flash8 Basic
FlashCS3
Flash CS4
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
野中さん、
早速の返信ありがとうございます!
なるほど、MovieClip.Loaderクラスですか?
しかし、クリップアクションだと、OKなのが、まだ、解せないのですが、仕様ということなのでしょうか?
野中文雄
Åê¹ÆNo.38628
投稿日時: 2008-5-1 0:47
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
MovieClipアクションがクリアされないのは、仕様というべきでしょう。しかし逆に、イベントハンドラメソッドと異なり、不要になっても消せないということでもあります(イベントハンドラメソッドは、delete演算子で削除できます)。
引用:
joykoさんは書きました:
しかし、クリップアクションだと、OKなのが、まだ、解せないのですが、仕様ということなのでしょうか?


----------------
 

ひろゆき
Åê¹ÆNo.38629
投稿日時: 2008-5-1 1:02
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
引用:
joykoさんは書きました:
なるほど、MovieClip.Loaderクラスですか?

細かいことですが「MovieClipLoader」クラスです。


----------------
質問する際は、回答者に具体的な情報を与えてください。

joyko
Åê¹ÆNo.38630
投稿日時: 2008-5-1 1:51
常連
居住地: 埼玉県
投稿: 167
使用環境:
WinXP(SP3)
Flash8 Basic
FlashCS3
Flash CS4
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
野中さん、ひろゆきさん、
再度、今晩は。

早速、MovieClipLoaderクラスを使ってみました。縮小写真は読み込まれ、"読み込み完了!"メッセージも表示されますが、やはり、mc2とmc4は、ボタンとして反応してくれません。

クリップアクションではOKで、フレームアクションは、効果なしという仕様ということで、一応、納得しました。


this.stop();//念のため
screen._xscale = screen._yscale=60;//外部jpgを60%の縮小率で読み込む(今回は、どうでもいい部分です)

/*?追記分:MovieClipLoaderクラスの設置、ここから?*/
_mcl = new MovieClipLoader();
mcListener = new Object();
_mcl.addListener(mcListener);
mcListener.onLoadComplete=function():Void{
moji_txt.text="読み込み完了!";
}

/*mc1からmc4まで、外部jJPGを、12%に縮小読み込み*/
for (i:Number=1; i<=4; i++) {
_root["mc"+i]._xscale = _root["mc"+i]._yscale=12;
_mcl.loadClip("photo/"+i+".jpg",this["mc"+i]);//縮小イメージで、4枚とも、読み込みは、終了しますが、やはり、mc2とmc4はボタンとして、反応しません。
}
/*?ここまで?*/


/*mc1とmc3は、MovieClipに直接クリップアクションで記載し、MovieClipボタンとして、正常反応します*/

mc2.onRelease = function():Void {
screen.loadMovie("photo/2.jpg");//ここは、ボタンの反応とは、関係ないと思いますが・・・
};

mc4.onRelease = function():Void {
screen.loadMovie("photo/4.jpg");
};

//外部写真を読み込んでない、このmc5は、ボタンとして、反応します。
mc5.onRelease = function():Void {
screen.unloadMovie();
moji_txt.text="";
};
ひろゆき
Åê¹ÆNo.38631
投稿日時: 2008-5-1 2:18
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
引用:
早速、MovieClipLoaderクラスを使ってみました。縮小写真は読み込まれ、"読み込み完了!"メッセージも表示されますが、やはり、mc2とmc4は、ボタンとして反応してくれません。

野中さんは、次のように書かれていますが。
引用:
外部ファイルのロードが完了するのを待って、イベントハンドラメソッドは設定しなければなりません。

引用:
クリップアクションではOKで、フレームアクションは、効果なしという仕様ということで、一応、納得しました。

したがって、この認識は間違っていると思います。

var _mcl:MovieClipLoader = new MovieClipLoader();
var mcListener:Object = new Object();
mcListener.onLoadInit = function(target:MovieClip):Void{
	moji_txt.text="読み込み完了!";
	target._xscale = target._yscale = 12;
	target.onRelease = function():Void {
		trace(this);	
	};
};
_mcl.addListener(mcListener);

for (var i:Number = 1; i <= 4; i++) {
	_mcl.loadClip("photo/"+i+".jpg",this["mc"+i]);
}


外部画像を読み込むムービークリップに、直接 onRelease を定義するのではなく、
外部ファイルの画像を並べるには?
のようにしてしまった方が面倒ではないようにも思いますが。


----------------
質問する際は、回答者に具体的な情報を与えてください。

野中文雄
Åê¹ÆNo.38632
投稿日時: 2008-5-1 2:27
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
まず2点、問題が見受けられます。第1に、「読み込み完了」の後にイベントハンドラメソッドが設定されていますか?
引用:
早速、MovieClipLoaderクラスを使ってみました。縮小写真は読み込まれ、"読み込み完了!"メッセージも表示されますが、やはり、mc2とmc4は、ボタンとして反応してくれません。
...[中略]...
mcListener.onLoadComplete=function():Void{
	// moji_txt.text="読み込み完了!";
	moji_txt.text += "読み込み完了!";
}
// ...[中略]...
moji_txt.text += "mc2設定、";
mc2.onRelease = function():Void {

第2に、MovieClipLoader.onLoadCompleteイベントは、ロードしたインスタンスに対するプロパティやメソッドの設定には適しません(前の回答に引用したノートはお読みになりましたか?)。

さらにもうひとつつけ加えておくべきことは、4つのファイルをロードすれば、イベントは4回発生します。ですから、ロードの済んだインスタンスごとに、適切な設定を行う必要があります。


----------------
 

ひろゆき
Åê¹ÆNo.38634
投稿日時: 2008-5-1 2:48
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
参考になりそうなスレッドをいくつか。

MovieClip.loadMovie 後の挙動について
MCを順々にロードすることができません

そのほか「loadMovie クリア」でフォーラム内を検索してみましょう
#「すべて表示」で、たくさん表示されます。


----------------
質問する際は、回答者に具体的な情報を与えてください。

joyko
Åê¹ÆNo.38637
投稿日時: 2008-5-1 7:04
常連
居住地: 埼玉県
投稿: 167
使用環境:
WinXP(SP3)
Flash8 Basic
FlashCS3
Flash CS4
Re: 外部JPG読み込みMCをボタンとして扱う場合のアクション
野中さん、ひろゆきさん、
おはようございます。
再三のご指摘、ありがとうございます。
勝手な誤解のまま、行くところでした!危なかったです!
もう一度、一からやり直してみます。

PS:考えれば、私の認識ですと、AS3.0では、大問題になるはずですから、そこも、少し、考慮すれば、ありえない話ですので、考慮が足りなかったです。反省しました。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops