0
var myArray:Array = new Array();
var myMC:MovieClip = new MovieClip();
myMC.myArray = myArray;
trace(myMC.myArray[10]); //Output: undefined
var newMC:MovieClip = new MovieClip();
newMC.myOtherArray = myMC.myArray;
newMC.myOtherArray[10] = [];
newMC.myOtherArray[10][0] = 100;
trace(myMC.myArray[10]); //Output: 100
爲什麼會發生這種情況,有什麼辦法可以避免它?爲什麼(myMC.myArray = myOtherMC.myOtherArray;)會對myMC.myArray進行任何更改以更改myOtherMC.myOtherArray?
編輯:
研究發現,可以克隆關聯數組here的功能。
下面是函數(從上面的鏈接):
function clone(source:Object):*
{
var myBA:ByteArray = new ByteArray();
myBA.writeObject(source);
myBA.position = 0;
return(myBA.readObject());
}
是否使函數返回類型「*」的意思,它可以是任何類型的?或者它是特定於對象/數組的東西?
如果它是一個關聯數組呢? –
@JaxBantam [**關聯數組**](http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7eea.html)是一個包含命名元素的數組(鍵:「a」,「 foo「,」score「,...)而不是編號元素(索引:0,1,2,...)。 – akmozo
對象實例可以用作關聯數組,通常最好將每個屬性手動複製到新對象。 – ozmachine