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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     マスクを使った画像の切り替え
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ne-san
Åê¹ÆNo.12624
投稿日時: 2004-11-24 14:20
半人前
居住地:
投稿: 36
使用環境:
WindowsXP
Flash CS3
マスクを使った画像の切り替え
こんにちは
マスクのサンプルスクリプトを解読中なのですが、
不明なところがあるので質問させてください。

下記のスクリプトは画像2枚(mov1/mov2)とマスクで校正された
ムービークリップのフレームアクションです。

レイヤーは
○フレームアクション
●mask1
●mov1
●mask2
●mov2

の順になっています。mask1、2は同じMCです。
----------------------------------------
//マスクを設定
mov1.setMask(mask1);
mov2.setMask(mask2);
changeDepth (1);
ch=1;

//マスクを変化
function maskMove (maskNo) {
if(ch ==1){
mask1.gotoAndPlay(maskNo);
}else if(ch == 2){
mask2.gotoAndPlay(maskNo);
}
}

//重なり順を変更
function changeDepth () {
if(ch ==1){
mov1.swapDepths(8);
mask1.swapDepths(9);
mov2.swapDepths(10);
mask2.swapDepths(11);
changeCH();
}else if(ch == 2){
mov2.swapDepths(8);
mask2.swapDepths(9);
mov1.swapDepths(10);
mask1.swapDepths(11);
changeCH();
}
}

//モード切替
function changeCH () {
if(ch ==1){
ch=2;
}else if(ch == 2){
ch=1;
}
}

----------------------------------------
上から4、5行目の「changeDepth (1);」と「ch=1;」の部分で
突っかかってしまいました。
changeDepthの引数(?)の1とは何のことなのか?ch=1とは
何のことなのか悩んでおります。

解説していただきたく投稿しました。
宜しくお願いします

:Win2000:
空野大二郎
Åê¹ÆNo.12626
投稿日時: 2004-11-24 14:47
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: マスクを使った画像の切り替え
まいど。

"function changeDepth ()"に引数を受け取る器が用意されて
いないため、"changeDepth (1);"の"1"はなくても動作しますね。
直後で"ch=1;"とマスクの状態が指定されているため、なおさら
前述の"1"が不要だと分かります。
引用:

ne-sanさんは書きました:
changeDepth (1);
ch=1;


制作者が「マスクのサンプルスクリプト」を作成中に、マスクの
状態を「引数」ではなく「変数:ch」で管理しようとした名残、なのでしょう。
以上です。


----------------
空野 大二郎 アニメーター作家
桜の道

ne-san
Åê¹ÆNo.12629
投稿日時: 2004-11-24 16:30
半人前
居住地:
投稿: 36
使用環境:
WindowsXP
Flash CS3
Re: マスクを使った画像の切り替え
空野大二郎さん。
まいど  回答ありがとうございました。

折角回答いただいたのですが、勉強不足のため、また質問させてください。

引用:

"function changeDepth ()"に引数を受け取る器が用意されて
いないため、"changeDepth (1);"の"1"はなくても動作しますね。
直後で"ch=1;"とマスクの状態が指定されているため、なおさら
前述の"1"が不要だと分かります。
以上です。



受け取る器とは?
ch=1とは?(マスクの状態だということは分かるのですが、どうしてch=1の記述だけでマスクの状態がわかるのでしょうか?)


引き続き解説お待ちしてます。

空野大二郎
Åê¹ÆNo.12633
投稿日時: 2004-11-24 17:16
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: マスクを使った画像の切り替え
 まいど。

 まず、「引数=関数に渡す値」という前提でお話しします。
 もし、"function changeDepth (theNum)"のようにされていれば、
"changeDepth(2)"のように、changeDepth()関数を実行すると共に、
「2」という値を渡すことができます。

 受け取る側では、「2」を受け取ってその値を関数の中で使います。
 では、「2」はどこにあるのかといえば、「theNum」に代入される
仕組みなのです。
この、「theNum」、変数を受け取る器の存在をなんと呼んでいいのか
分からなかったため、あのような説明になってしまいました。
引用:

ne-sanさんは書きました:
受け取る器とは?



 FlashMXのアクションウィンドウで、変数「ch」の検索をかけます。
 すると、次のようになりますね。
//マスクを設定
mov1.setMask(mask1); 
mov2.setMask(mask2); 
changeDepth (1);
ch=1;

//マスクを変化
function maskMove (maskNo) {
	if(ch ==1){
		mask1.gotoAndPlay(maskNo);
	} else if(ch == 2){
		mask2.gotoAndPlay(maskNo);
	}
}

//重なり順を変更
function changeDepth () {
	if(ch ==1){
		mov1.swapDepths(8);
		mask1.swapDepths(9);
		mov2.swapDepths(10);
		mask2.swapDepths(11);
		changech();
	} else if(ch == 2){
		mov2.swapDepths(8);
		mask2.swapDepths(9);
		mov1.swapDepths(10);
		mask1.swapDepths(11);
		changech();
	}
}

//モード切替
function changech () {
	if(ch ==1){
		ch=2;
	}else if(ch == 2){
		ch=1;
	}
}

 変数「ch」の値を変更しているのは冒頭5行目と「//モード切替」の
3カ所です。
 他のところでは、変数「ch」を参照して、比較演算子"=="で評価され、
その結果でマスクの状態を変化させています。
 上記の中で、ゆいいつフレーム実行時に変数「ch」に値を
代入しているのが、"ch=1"だったので、この状態が最初に表示される
マスクの状態を表しているのだと判断しました。
引用:

ne-sanさんは書きました:
ch=1とは?(マスクの状態だということは分かるのですが、どうしてch=1の記述だけでマスクの状態がわかるのでしょうか?)


----------------
空野 大二郎 アニメーター作家
桜の道

空野大二郎
Åê¹ÆNo.12635
投稿日時: 2004-11-24 17:36
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: マスクを使った画像の切り替え
 なんだか、マスクの話ではなくて、「自作関数の引数」についての話になっていますね。

 引数について理解を深めたい場合は、単純なスクリプトで確認することをオススメします。
//足し算関数
//a_plus_b(第1引数, 第2引数)
//第1引数と第2引数を足して、結果を返す。
function a_plus_b(a, b) {
	return (a + b);
}
theResult = a_plus_b (1, 2);//足し算関数"a_plus_b()"に引数「1」と「2」を送る。
trace(theResult);//結果を出力
this.stop();

 関数a_plus_b()を呼び出すとき、中の値を変更して、引数の仕組みを
体験して下さい。("text"文字列を送ってもかまいません)

 あとは、書店などでActionScriptの書籍を手に取り、立ち読みでも
結構ですので(作者方、失礼)索引で「引数」を調べて軽く読んでみて下さい。
 きっと、そちらの方がしっかりとした説明がされています。
 分かりやすいと思ったら、購入して勉強するのも吉です。
 もちろん、お手持ちのものでもかまいません。


----------------
空野 大二郎 アニメーター作家
桜の道

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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