2012-11-26 43 views
0

我想用actionscript 3中的變量做這樣的事情,你可以忽略randomNumber函數。它只是爲了讓我的問題關於我在做什麼更清晰:如何使用這樣的變量?

function randomNumber(low:Number=0, high:Number=1):Number { 
return Math.floor(Math.random() * (1+high-low)) + low; 
} 

randomNumber(1, 3) 

var selection:int = randomNumber; 

mymovieclip.insideclip(selection); 

所以我想基本上使用變量的內容來選擇特定的影片剪輯。你可以想象有多個內側夾。所以像insideclip1,insideclip2,insideclip3。我隨機選擇一個數字並將其放入一個名爲selection的變量中,然後我想使用mymovieclip.insideclip1,2或3,具體取決於該變量存儲的數字。

我敢肯定,有一種方法可以做到這一點,有人可以指導我解決。

+0

只是爲了澄清任何人可能會遇到此類尋找類似的東西。我做了一個數組:movieclipArray:Array = [movieclip.insideclip1,movieclip.insideclip2等];然後用我在上面發佈的隨機函數做了如下操作:var selection = randomNumber(0,3);並最終可以得到我想要的結果:movieclipArray [selection] –

回答

2

有很多種方法可以做到這一點(也取決於你想要的)。一種方法是,您可以將所有「內部剪輯」存儲到數組中,然後選擇一個隨機索引。

+0

啊謝謝你的建議,我仍然是一個新手,所以我沒有使用陣列的經驗,但我會得到它!出於好奇,我確信使用數組可以工作,但我也想知道其他方法來實現相同的目標。我會再次發佈,如果我得到陣列的工作,當然。 –

+0

在這種情況下,該數組既是存儲剪輯的方法,也是用於將每個動畫片段的「映射」或索引創建爲數字的方法。你可以用另外一種方式來創建這個映射,例如將'1'標記爲剪輯1,將'2'標記爲剪輯'2',然後如果要避免使用數組,則使用long if/else if或switch語句,但是我不能說我推薦它,因爲它會導致許多重複的代碼和更難維護,取決於你有多少剪輯。 – mitim

+0

啊,我現在明白了,感謝幫助mitim。我把「內部剪輯」放入一個數組中,並且可以很容易地隨機選擇使用哪一個,然後讓它做我想做的事。哈哈,是的,我正在考慮你提到的另一種方式,幾乎認爲在問這裏之前試圖走很長的路。很高興我決定以不同的方式處理它。 –

0
var selection:int = randomNumber(1, 3);//randomNumber(1, mymovieclip.numChildren) 
var myMovie = mymovieclip.getChildByName("insideclip" + selection); 

或者如果你想擺脫名字,你可以通過它們的深度來訪問它。

var selection:int = randomNumber(1, mymovieclip.numChildren); 
var myMovie = mymovieclip.getChildByDepth(selection); 
+0

啊,謝謝你的答案Moorthy,有趣的方法。我最終決定製作一個數組來保存剪輯,但是感謝您的建議。 –

相關問題