幼稚的做法:
public function Main()
{
const array:Array = [1,2,3,4,5,6,7];
trace(array);
// 1,2,3,4,5,6,7
swapTwoRandomElements(array);
trace(array);
// 1,2,3,6,5,4,7
}
private function swapTwoRandomElements(input:Array):void
{
const indices:Array = [];
for (var i:int = 0; i < input.length; i++)
{
indices.push(i);
}
const indexFirst:int = indices[int(Math.random() * indices.length)];
indices.splice(indexFirst, 1);
const indexSecond:int = indices[int(Math.random() * indices.length)];
indices.splice(indexSecond, 1);
const tmp:* = input[indexFirst];
input[indexFirst] = input[indexSecond];
input[indexSecond] = tmp;
}
哪里是X Y位置 –
@ActionScriptstudent你能请编辑您的问题呢?在“Y位置在哪里”这个问题下,你不明白你的意思。根据一般问题,你想在数组中交换两个随机位置。在您的代码示例中,您将创建一个数组数组,其中没有X或Y坐标。如果你想在你的box数组中使用交换函数,只需要调用:'swapTwoRandomElements(boxs);' – Nbooo
@ActionScriptstudent最简单的方法是将初始位置定义为一个点数组:'const positions:Array = [new点(20,20),...等]'。然后,只需使用交换功能来混洗这个数组。位置数组重新排列后,您需要将这些位置以适当的顺序应用到剪辑中。对于动画,你可以使用一些像TweenLite这样的软件包。 – Nbooo