用AS3開發時,new鍵值對,鍵爲int類型,但是這裏的鍵其實是string,編譯成JS語言後,JS是弱類型語言。這種寫法在部分移動設備上可能會導致遊戲卡死(崩掉)。
//錯誤用法
var map:Object = {};
map[1] = "one";
map[2] = "two";
map[3] = "three";
for(var key int in map){
console.log(map[key]);
}
//正確示例,把string類型的key轉成int
map[1] = "one";
map[2] = "two";
map[3] = "three";
for(var key String in map){
console.log(map[parseInt(key)]);
}
JS是弱類型語言,在AS3設置的變量類型在JS中其實是假的變量類型,JS不知道變量的類型,如果運行代碼的設備沒有處理(大部分設備都有做這個處理,但是也有設備沒有做這個轉化)string轉int,在layaNative上跑就會崩。
所以,開發中,要避免這種錯誤寫法。
key要用string類型,如果需要int,可以自行再轉化爲int