我觉得你在这一行有一个语法错误:
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