メイン コーダーズルーム【スクリプト系】 swapDepthsを使った時のマスクとの関係について | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
hidenoki | Åê¹ÆNo.3674 投稿日時: 2004-2-10 18:28 |
新米 居住地: 群馬県 投稿: 15
使用環境:
Windows2000 FlashMX-Version6.0 |
swapDepthsを使った時のマスクとの関係について こんにちは、宜しくお願い致します。
サンプルの様な枠内に5つのMCが流れるムービーを作っています。 ●サンプル レイヤー構成は、上から順に 1)TimeLine → 変数 Move = 1 を設定してあります。 2)Frame → 枠画像があります。 3)Mask → 表示領域の設定 4)Movie → 5つのMCがあります。 となっています。 流れている5つのMCには、下記のスクリプトを個々に設定してあります。
それで、青色MCにだけswapDepthsを使用しているのですが、青色MCをロールオーバーするとマスクを飛び出て表示されてしまいます。ロールアウトしても、マスクを飛び出したまま…なぜなんでしょうか(?-?) swapDepthsを使用するとレイヤー順序が無視されるのでしょうか? swapDepthsを使用している理由は、青色MC以外をロールオーバーさせると気付かれるかと思いますが、左または右のMCがロールオーバーさせたMCより重ね順が上である事があるので、それをどうにかしたいと思いswapDepthsを使用した次第です。 宜しくお願い致します。m(__)m |
笠居トシヒロ | Åê¹ÆNo.3676 投稿日時: 2004-2-10 19:13 |
マスター 居住地: 兵庫 投稿: 870
使用環境:
SnowLeopard, Safari4, CS4 Windows7, IE8, CS4 |
Re: swapDepthsを使った時のマスクとの関係について それぞれのムービークリップの深度を、getDepthで調べてみれば、原因がわかると思いますよん。
|
巧 | Åê¹ÆNo.3677 投稿日時: 2004-2-10 19:16 |
半人前 居住地: 英国 投稿: 39
使用環境:
Flash MX 2004 @ Windows XP |
Re: swapDepthsを使った時のマスクとの関係について swapDepthsなどを使うとレイヤーの順序は無視されるようです。
この場合はマスクに使ってる長方形もMC化して、そこに
としておけば、マスクされてるMCが上に飛び出る事はなくなると思いますよ。
|
野中文雄 | Åê¹ÆNo.3682 投稿日時: 2004-2-10 20:42 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: swapDepthsを使った時のマスクとの関係について 深度(depth)を変更することは、レイヤーの移動と同じ効果があります。
SWFを書出すとき、レイヤー自体の情報は失われます。しかし、レイヤー上のオブジェクト(オーサリング時のシェイプやグループ、シンボルなどの重ね順をもった描画形状)は、その重ね順にしたがって深度を描画位置(重ね順)として受取ります。いわば、重ね順の整理番号を受取るようなものです。 最背面のオブジェクトを深度-16,384として、その重ね順にしたがい、各オブジェクトがそれぞれユニークな整数値を深度として受取ります。ですから、深度の変更は、重ね順を変えることであり、レイヤーの移動に相当する結果を発生します。 引用: hidenokiさんは書きました: |
hidenoki | Åê¹ÆNo.3691 投稿日時: 2004-2-11 9:04 |
新米 居住地: 群馬県 投稿: 15
使用環境:
Windows2000 FlashMX-Version6.0 |
Re: swapDepthsを使った時のマスクとの関係について kasaiさん、taqumiさん、Fumioさん、ありがとうございます。
kasaiさんの言う通りにgetDepthで各MCとマスクと枠の深度を調べ、 (Fumioさんの言う通りで、ユニークな深度値を持っていました。) 問題は解決したのですが、新たに疑問が一つ生まれました。 それは『マスクの深度が一番深い』って事です。 イメージ的にはレイヤー順になっているかと思っていたのですが… 一番深いマスクでどうしてマスクの下にあるレイヤーの表示範囲を制御できるのか不思議です。深度だけを見ると、マスク対象内なのかマスク対象外なのか解らないですし…(マスクの上下レイヤーともマスクより深度が浅い為) この『マスクの深度と制御範囲』はどうなっているんでしょうか? 宜しくお願い致します。 |
野中文雄 | Åê¹ÆNo.3695 投稿日時: 2004-2-11 14:14 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: swapDepthsを使った時のマスクとの関係について SWFの内部処理がどうなっているかは、想像するしかありません。確かに、マスクレイヤー(上のオブジェクト)の深度は、マスク対象のレイヤーの下に配置されるようですね。
引用: hidenokiさんは書きました: オーサリング時のインターフェイスとSWFの内部処理は、別個に考える必要があります。たとえば、オーサリング時の「シーン」は、SWF書出し時には消滅し、すべてが1本のタイムラインにつなげられます。 オーサリング時に上から下に設定していたマスクを、(理由はわかりませんが)SWF書出し時には下から上にマスクするということも、理屈上不可能ではありません。 引用: 一番深いマスクでどうしてマスクの下にあるレイヤーの表示範囲を制御できるのか不思議です。深度だけを見ると、マスク対象内なのかマスク対象外なのか解らないですし…(マスクの上下レイヤーともマスクより深度が浅い為) いずれにしても、マスクレイヤーは表示されませんし、マスクの対象さえ特定できれば、マスク自体の位置(深度)を問うことにあまり意味はないでしょう。つまり、SWFにはマスク対象の深度の「範囲」の情報が存在していると考えるべきです。 そのうえで改めて、上記のマスクレイヤーが存在する場合の各レイヤーの深度を見てみると、本来マスクが存在したのではないかと想像される位置(-16377)が不自然な欠番になっています。想像するに、この欠番がマスクの開始深度、MovieClip.getDepth()メソッドで取得された下層に移動したマスクレイヤーの深度が終了位置(-16381)のように思われます。 実際、マスク対象外のふたつのレイヤー上のMovieClipインスタンスに、以下のMovieClipアクションを設定してクリックすると、マスク対象にすることが可能でした。
|
hidenoki | Åê¹ÆNo.3696 投稿日時: 2004-2-11 14:40 |
新米 居住地: 群馬県 投稿: 15
使用環境:
Windows2000 FlashMX-Version6.0 |
Re: swapDepthsを使った時のマスクとの関係について Fumioさんのお陰で理解する事ができました。
ありがとうございました。m(__)m 今後とも宜しくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |