我真的希望能夠在數組的邊界上使Flash的數組訪問語法'wrap'。擴展AS3的數組訪問操作符以'wrap'出界索引值
冗長的解釋 -
var array:Array = ['a','b','c','d','e','f'];
爲了簡單起見,第一指數爲0,它的值是第一個字母 'A'。要獲得該值,我們可以這樣做 -
array[0]; // returns 'a'
只要你使用訪問數組爲0,array.length之間的指數(在本例中6)一切工作正常 - 但如果您使用這些邊界之外的索引,則會關閉。
array[-3];
array[9]; // both return 'undefined'
有時候這是件好事 - 有時你會期望發生,而且你很好。其他時候,你發現自己希望(或至少我覺得自己希望),它會表現得更像這個有點 -
array[-3];
array[9]; // both return 'd'
(如照片庫,當你點擊「下一步跳轉回到開始「在最後一張照片)
還有的代碼,我用了個遍了這樣的事情一點大塊,但它總是改變指數之前將它傳遞到陣列中:
var index = -3;
while(index < 0){index += array.length}
array[index % array.length]; // returns 'd'
...那很好,但我的真正想要做的就是擴展Array對象本身,以便它自動'包裝'超出界限的索引值。
TL; DR - 是否可以通過擴展Flash AS3的Array對象進行索引封裝?
+1。就我而言,絕對是正確的答案。 +1是用於使用flash_proxy的動態類。 – sberry 2010-01-17 18:31:36
呵 - 迷人!我將不得不與這一點混在一起 - 也許你是對的,可能會更容易,只是製作一種封裝類,將陣列頂部的'wrap'功能層疊起來,但是... ...我會試試看! – 2010-01-17 21:34:34
很酷,是的,把這個插入到了我正在搞的項目中,正是我想要的東西。我可以看到我將不得不花費一些時間玩代理類,我沒有任何機會在之前看它......謝謝! – 2010-01-21 23:51:40