2

私はこの問題に取り組んでいます。私は 24 個のムービークリップ (mc1、mc2、..、mc24 と呼ばれる) を持っており、それらはある種のグリッド (6x4) でステージに配置されています。これらのムービークリップの位置を切り替える機能が必要です (シャッフルのようなものですが、他のムービークリップの既知の位置があります)。たとえば、mc1.x と mc1.y は、mc4.x と mc4.y などに等しくなります。お時間とアイデアをありがとうございました。

4

2 に答える 2

1

XOR スワップを使用します。基本的には次のようになります。

mc1.x ^= mc4.x;
mc4.x ^= mc1.x;
mc1.x ^= mc4.x;

mc1.y ^= mc4.y;
mc4.y ^= mc1.y;
mc1.y ^= mc4.y;

それからそこから行きます。

于 2013-03-13T23:01:10.643 に答える
0

次のような意味ですか。

function swap(mcA:MovieClip, mcB:MovieClip):void
{
    var tempPosition:Point = new Point(mcA.x, mcA.y);
    mcA.x = mcB.x;
    mcA.y = mcB.y;

    mcB.x = tempPosition.x;
    mcB.y = tempPosition.y;
}
swap(mc1, mc4);

これにより、mc1との位置が入れ替わりmc4ます。

var totalItems:int = 24; // total number of items
for(var i:int = 0; i < int(totalItems/2); i++)
{
    var randomItem:String = "mc"+(int(Math.random() * (int(totalItems/2)-1)) + (int(totalItems/2)+1));
    swap(this["mc"+(i+1)], this[randomItem]);
}

これにより、前半のアイテムが通過し、後半のアイテムからランダムなアイテムと交換されます。

于 2013-03-13T17:37:38.627 に答える