- 2008年3月14日 16:33
- ActionScript 3.0
先日Flashでちょっとしたものを作っていたときに
ちょっと妙な動作に遭遇しました。
よく考えてみれば「まあ、そうか」と思える動きなのですが
最初見たときは一瞬何が起こったのかわかりませんでした。
よく考えてみれば「まあ、そうか」と思える動きなのですが
最初見たときは一瞬何が起こったのかわかりませんでした。
その動作とは以下のような状態のときにaddChildすると起こります。
デカデカとMASKと書かれた部分がマスクです。
簡単に言えば、一番上のフレーム mask がマスクレイヤで
その下に picture という空のレイヤがマスク対象として設定してあります。
この状態で、例えば以下のような画像(クラス名Picture)をaddChildすると
↓こうなります
要するに、一番上のレイヤがマスクレイヤの時にaddChildすると
その下のpictureレイヤにaddChildされてマスクがかかった状態に・・・
正直自分の目を疑いましたよ。
それじゃあマスクより上に表示したい時どうすんの?
って思う人もいると思います。
そんなときは、もう一個上に新規レイヤを追加して(これだけでは駄目!)
何でもいいから端っこにシェイプなりなんなりを置いて
空じゃないキーフレームにしておくと大丈夫みたいです。(なんじゃそりゃ)
ここからは憶測ですが、空のレイヤーとマスクレイヤ(おそらくモーションガイドも)は
そもそも存在しないレイヤと思われてしまうため、
addChildすると、そこを無視して一つ下のレイヤに追加される?ということのようです。
まあ、あんまりこの問題に直面する人はいないと思いますが
とりあえず書き記しておきましたとさ。
- Newer: AS3.0 16進数の色分解ではまった事
- Older: サグールテレビがオープン