0

シナリオは次のとおりです。A、B、C、D の 4 つのオブジェクトがあります。必要なのは、C が A を隠し、B を隠しないようにすることです。同様に、D で B を隠し、A を隠しないようにします。A と B はできます。どの順番で重ねても構いません。

言い換えれば、オブジェクト (C) が 1 つのオブジェクト (A) をカバーできるが、別のオブジェクト (B) と接触してもカバーできないようにしたいということです。Dも同様で、接触してもBはカバーできるがAはカバーできない。問題は、これを可能にするレイヤー構成を考えられないことです。D は常に A と B の両方よりも高くなり、両方を覆い隠します。

誰かが計り知れないほど巧妙な構成を考え出すとは思っていませんが、これを実行できる何らかの種類の ActionScript があるかどうかは疑問です。特に、A と B は動的な TextField であり、C と D は任意の形状 (つまり、長方形ではない) の MovieClip である必要があります。

これが可能であることを願っています!

4

3 に答える 3

2

それらをステージに追加する順序によって、何が何の前に表示されるかが決まります。基本的に、最後に追加されたものはすべて上にあり、最初に追加されたものはすべて下にあります。

CがAをカバーし、Bをカバーせず、DがBをカバーし、Aをカバーしないようにする場合は、問題があります。4つすべてが互いに重なり合ったらどうなるか考えてみてください。CはAを覆い、Bを透けさせようとしますが、DはBを覆い、Aを透けさせようとします。ありえない。

于 2012-03-17T17:17:34.367 に答える
2

実際にアイテムをステージに追加するのではなく、代わりに copyPixels() または draw() を使用してピクセルを描画するブリッティングを使用できます。これを行うと、オブジェクトのどの部分が描画されるか、または描画されないかを判断できます。技術の概要については、このブログ投稿をご覧ください http://www.developria.com/2010/02/dealing-with-bitmapdata.html

于 2012-03-17T19:07:01.527 に答える
0

あなたが何を望んでいるかを理解したと仮定してsetChildIndex()、親/包含 MovieClip の機能を使用します。すべての ABCD オブジェクトが、parent_mc という名前の MovieClip に含まれている場合は、次のようにすることができます。

parent_mc.setChildIndex(a_mc, parent_mc.numChildren-1); // Throw "a_mc" on top
parent_mc.setChildIndex(b_mc, parent_mc.numChildren-1); // Throw "b_mc" on top

b_mcこれは、などの上にあるという結果になりa_mcます...

また、表示リストの一番下に何かをスローする必要があります。

 parent_mc.setChildIndex(b_mc, 0);

ドキュメントはこちら: DisplayObjectContainer.setChildIndex()

于 2012-03-17T19:16:37.503 に答える