3

小さなフラッシュベースの言語翻訳者を構築しています。ユーザーが単語または語句をテキスト フィールドに入力すると、XML 親ノードの子を相互参照しています。結果は、output_txt テキスト フィールドに返されるその単語または語句の翻訳になります。

問題は、関連のない型の XML に対する String の値の型に関して、Flash がこのエラーを表示することです。なんで?助言がありますか?ありがとう!

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 ...)for each (... in ...)

于 2010-03-09T10:57:15.197 に答える