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 回答