2012-01-15 8 views
0

どのレイヤーがインスタンスであるかを検出する方法を知りたいと思います。たとえば、最初のレイヤーにbobという名前のサークルを置き、2番目のレイヤーにtestという名前の四角形を配置します。 actionscriptでは、テストするレイヤーを検出できますか?どのレイヤーが見つかったかを検出する方法

私は私のゲームでは、私は第二の層の上に、第1の層と、すべての固体のオブジェクトにすべての非固体のオブジェクトを配置しますので、これを使用したいと私はインスタンスがどの層

に配置されているActionScriptで検出したいです
+0

私は信じていますActionScriptにはFlashオーサリングツールのレイヤーの概念はなく、さまざまなレイヤーは単にステージの子どもの注文としてコードによって解釈されます。私は長い間Flashオーサリングツールを使用していませんでしたが、私は覚えていません。 – jhocking

答えて

2

actionscript 3では、レイヤーなどはありません。 Flash IDEユーザーは、実際のSWFコンパイルが発生するまで特定の要素をグループ化するのが便利です。コンパイル時には、すべてのオブジェクトがレイヤの階層に従ってstageに追加されますが、それらはすべて、異なるchildIndexプロパティを持つ同じstageオブジェクトに属します。 あなたはこのように、問題のインスタンスが固体のオブジェクトに属しているかどうか、SpriteMovieClipにあなたの固体のオブジェクトを追加して確認する必要があり、ActionScriptの3の層の概念を使用するには:

var solidContainer:Sprite = new Sprite(); 
this.addChild(solidContainer); 
solidContainer.addChild(someSolidObject); 

var nonSolidContainer:Sprite = new Sprite(); 
this.addChild(nonSolidContainer); 
nonSolidContainer.addChild(someNonSolidObject); 

function isSolid(object:DisplayObject):Boolean { 
    if (solidContainer.contains(object)) { 
    return true; 
    } else { 
    return false; 
    } 
} 

isSolid(someNonSolidObject); // returns false 
関連する問題