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