3

我正在构建一个基于 Flash 的小型语言翻译器。一旦用户在文本字段中输入单词或短语,我就会交叉引用 XML 父节点的子节点。结果将是返回到 output_txt 文本字段的那个词或短语的翻译。

问题是,Flash 给了我这个关于 String 到不相关类型 XML 的值类型的错误。为什么?有什么建议么?谢谢!

generate_mc.buttonMode=true;

var English:String;
var myXML:XML;
var myLoader:URLLoader = new URLLoader();

myLoader.load(new URLRequest("Language.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void {
 myXML=new XML(e.target.data);
}

var langObj:Object = new Object();
for (var entry:XML in myXML.children()) {  //getting error #1067 on the XML========
 langObj[entry.english.toString()]=entry.cockney.toString();
}

generate_mc.addEventListener(MouseEvent.CLICK, onClick);

function onClick(event:MouseEvent) {
 English=textfield_txt.text;

 if (langObj[textfield_txt.text]!=undefined) {
  output_txt.text = myXML.cockney; //this is where the translation will appear. is this correct syntax?===============
 } else {
  trace( "the key is not defined: " + textfield_txt.text);
 }
}
4

1 回答 1

4

您必须更改for (... in myXML.children())for 每个 (... in myXML.children()). for (... in ...)使用and之间存在细微差别for each (... in ...),但我不确定它们是什么。当迭代字典/对象时,循环的行为也不同:前者给出键,而后者给出值。

于 2010-03-09T10:57:15.197 回答