我覺得你在這一行有一個語法錯誤:
String str = str.substring(8,str.length-1);
如果只是用這樣的:
var d:Dictionary = new Dictionary();
d["Exhausted"] = "He who talks more is sooner exhausted, please keep smiling :)";
trace(d["Exhausted"]);
你可以看到這一切都很好。
與var str:String = str.substring(8,str.length-1);
的問題是,你定義了一個名爲「STR」字符串:var str:String
,但你分配一個值,它是當你調用子串在海峽尚不存在呼籲海峽和賽道的substring()
方法的結果它。 不知道這是否合理:您將str定義爲在str上應用子字符串的結果。
ActionScript編譯器應該已經抱怨BTW:
預期的屬性字符串之後的定義關鍵字(如功能),而不是海峽。
只是一個瘋狂的猜測,但你會碰巧有str定義在你的代碼中的其他地方,你只是使用str再次更新str之前使用它?在這種情況下,你不應該重新定義,str,你應該簡單地分配一個新的值。 例如
//somewhere else
var str:String = "12345678Exhausted";
//further down
var Dic:Dictionary = new Dictionary();
Dic["Exhausted"] = "He who talks more is sooner exhausted, please keep smiling :)";
str = str.substring(8,str.length); // == str = "Exhausted";
trace('Dic[' + str + '] = ' + Dic[str]);
此外,另一個語法錯誤是你如何定義str
: 應該var str:String
(AS2/AS3語法),不String str
(Java/C++ /等風格。)
很好的解釋,喬治 – 2013-02-10 03:11:29
首先所有的,我是Java的人,所以請問我從字符串語法錯誤,,,,是的,我得到了「str」形式上線(對不包括此信息) 詳細信息:{var str:String = emotions [ I]的ToString(); str = str.substring(8,str.length-1); //我使用這一行來獲取我使用其名稱作爲Dic關鍵字的對象的名稱。 trace('Dic ['+ str +'] ='+ Dic [str]);} – 2013-02-10 03:14:52
是的,總之,我需要從字典中彈出一個值,而鍵是一個變量!例如:'Dic [x],而x是一個變量',假設我從另一個代碼獲得了x值。怎麼來的? – 2013-02-10 03:23:39