2013-03-08 67 views
0

当我启动我的应用程序时,它会显示一个带有开始按钮的页面。在闪存中随机化按钮位置

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

任何人都可以请帮忙吗?

+0

我没有得到任何逻辑这一点。我首先尝试通过创建按钮的实例数组。然后,我将这个数组进行了整理,使它变得随机。之后,我将它返回到相同的数组名称。但是,我仍然看不到按钮改变他们的位置。你能为此提出任何想法/解决方案吗? – pravesh 2013-03-08 16:59:41

+0

你应该洗牌按钮坐标,而不是实例处理程序本身:) – Smolniy 2013-03-08 18:55:33

回答

0

你Button1的...按钮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; 
} 
+0

好吧,所以我想我将不得不将按钮坐标存储在名为“arr”的数组中。但我如何将x和y坐标存储在单个数组中?或者我是否必须在“arr”中写入实例,并且他们的位置将被推送?然后,“arr”的洗牌完成......但是,我怎样才能确保按钮的新/洗牌coords被用来改变按钮的位置? – pravesh 2013-03-09 02:06:09

+0

你看到大括号了吗?这是Object类的实例。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Object.html对象可以将许多变量存储在一个“容器”中。我们把所有按钮的坐标放在数组中。 X和Y在一起。然后洗牌阵列。现在,在数组[0]中,按钮5的坐标,数组[1]中的坐标 - 按钮3的坐标,数组[2]中的按钮1 - 按钮1等等。 – Smolniy 2013-03-09 08:58:48

+0

然后我们将button1放入coords array [0](即button5的原始坐标)按钮2到array [0](button3的原始坐标)中,等等。想一想,这是一个非常简单的算法。请记住,数组元素从零开始索引。 – Smolniy 2013-03-09 08:59:27

0

如果您有一个数组的按钮哟可以这样做:

for(1=i; i<=button_array.length; i++) { 
    button_array[i].x = Math.random() * WIDTH_AVAILABLE; 
    button_array[i].y = Math.random() * HEIGHT_AVAILABLE; 
} 

您应该调整宽度和高度,所以没有按按钮在可用空间之外结束。这也没有任何重叠检查。

0
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; 
    } 
} 

而当你需要suffle设置OV按钮,呼叫

shuffleButtons([button1, button2, button3, button4, button5, button6 ]);