随机按钮在flash中的位置

随机按钮在flash中的位置,flash,button,Flash,Button,当我启动应用程序时,它会显示一个带有开始按钮的页面 单击后,将显示八个按钮。对于我的应用程序,我希望每次运行它时,按钮都应该随机化,即它们应该出现在页面上的不同位置 有人能帮忙吗?你有按钮1…按钮8 var arr:Array = new Array(); for (var i:int=1; i<=8; i++) { var btn:Sprite = this["button"+i] as Sprite arr.push({x:btn.x, y:btn.y}) } suff

当我启动应用程序时,它会显示一个带有开始按钮的页面

单击后,将显示八个按钮。对于我的应用程序,我希望每次运行它时,按钮都应该随机化,即它们应该出现在页面上的不同位置


有人能帮忙吗?

你有按钮1…按钮8

var arr:Array = new Array();
for (var i:int=1; i<=8; i++) {
    var btn:Sprite = this["button"+i] as Sprite
    arr.push({x:btn.x, y:btn.y})
}
suffle arr
for (i=1; i<=8; i++) {
    var btn:Sprite = this["button"+i] as Sprite
    btn.x = arr[i-1].x;
    btn.y = arr[i-1].y;
}
var-arr:Array=new-Array();

对于(var i:int=1;i如果在数组中有按钮,则可以执行以下操作:

for(1=i; i<=button_array.length; i++) {
    button_array[i].x = Math.random() * WIDTH_AVAILABLE;
    button_array[i].y = Math.random() * HEIGHT_AVAILABLE;
}
for(1=i;i
函数shuffleButtons(arrayOfButton:Array):无效{
跟踪(“输入:“+arrayOfButton”)

对于(var i:int=0;我对此没有任何逻辑。我首先尝试创建一个按钮实例数组。然后我洗牌数组,使其成为随机的。之后我将其返回到相同的数组名称。但是,我仍然看不到按钮改变其位置。你能为这一点提出任何想法/解决方案吗?你应该洗牌e按钮坐标,而不是实例处理程序本身:)好的..所以我想我必须将按钮坐标存储在一个名为“arr”的数组中。但是我如何将x和y坐标存储在一个数组中?或者我必须将实例写入“arr”并按下它们的位置?然后“arr”的洗牌完成了…但我如何确保按钮的新/无序坐标用于更改按钮的位置?你看到大括号了吗?它是类对象的实例。对象可以在一个“容器”中存储多个变量.我们把所有按钮坐标的数组对象放在一起。X和Y。然后洗牌数组。现在,在数组[0]中放置有按钮5坐标的对象,在数组[1]中放置有按钮3坐标的对象,在数组[2]中放置有按钮1,依此类推。然后我们将坐标数组[0]中的按钮1(即按钮5的原始坐标)按钮2设置为数组[0](button3的原始坐标),等等。稍微想想,这是一个非常简单的算法。请记住,数组元素是从零开始索引的。从您的解释和代码中我了解到的是,“第一个for循环”推动数组中称为“arr”的按钮坐标。然后是“suffle arr”是我将不得不编写的代码,除了此代码之外,它将洗牌数组。洗牌完成后,“第二个for循环”将把新的/洗牌的坐标按到按钮上,以便它们重新定位。我做对了吗?请确认..var arr:array=new array();for(var I:int=1;I
function shuffleButtons(arrayOfButton:Array):void {
    trace ("input: " + arrayOfButton)
    for(var i:int=0; i<100; i++) {
        var btn1:DisplayObject = arrayOfButton[Math.floor(Math.random()*arrayOfButton.length)] as DisplayObject;
        do {
            var btn2:DisplayObject = arrayOfButton[Math.floor(Math.random()*arrayOfButton.length)] as DisplayObject;
        } while (btn1==btn2);

        var foo:Number;

        foo = btn1.x;
        btn1.x = btn2.x;
        btn2.x = foo;

        foo = btn1.y;
        btn1.y = btn2.y;
        btn2.y = foo;
    }
}