0

それぞれ独自のインスタンス名を持つ 16 個の一意のピースを持つドラッグ アンド ドロップの「パズル」を作成しました。

私が抱えている問題は、アレイで構成された 4 つのターゲット ゾーンがあることです (ゾーンごとに 4 個ですが、ゾーン内のピースの順序は関係ありません)。ピースが正しいゾーンにドロップされたら、それを別のムービークリップに「切り替え」て、その新しいムービークリップをドロップ ターゲット エリアに配置したいと考えています。

したがって、16 個のパズル ピースのそれぞれについて、16 個の固有のコンパニオン ピースもあり、これらを何らかの方法でペアにする必要があります。これにより、表示されているパズル ピースがドロップされたときにビューから削除されるだけでなく、コンパニオン ピースに置き換えられます。

これを行う方法についてのアイデアはありますか?

4

1 に答える 1

0

MovieClipは動的クラスです。つまり、実行時にプロパティを追加できます。これを利用して、元のピースにプロパティを割り当て、のように呼び出すことができますpairedPiece。このプロパティには、適切な値(ライブラリ内のペアの名前)を格納します。

var firstMovieClip:MovieClip;
// do whatever you need to set up your firstMovieClip, attach listeners, etc
firstMovieClip.pairedPiece = "SecondMovieClip";

// the following will occur when the piece is dropped and you need to swap it
var secondMovieClip:MovieClip = new (getDefinitionByName(firstMovieClip.pairedPiece) as Class)() as MovieClip;
secondMovieClip.x = firstMovieClip.x;
secondMovieClip.y = firstMovieClip.y;
firtMovieClip.parent.addChildAt(secondMovieClip, firstMovieClip.parent.getChildIndex(firstMovieClip));
firstMovieClip.parent.removeChild(firstMovieClip);
于 2013-03-14T22:01:30.903 に答える