次のような XML シートを呼び出して検索するプロジェクトに取り組んでいます。
<Searchtext Wordlookup="john smith">
<location>$1</location>
<Name>john smith</Name>
</Searchtext>
そしてそれは約100人以上の人々のためにこのように続きます.
今、私のフラッシュはこのデータを取得し、ユーザーがテキストボックスをクリックするか (@Wordlookup を使用して e.target.data.text が xml に一致する)、または人の名前を入力できるようにします (再びテキストボックスの内容に一致します) @Wordlookup に) すると、その人物の場所が点灯します (MC はそれぞれの場所ノードと同じ名前になります)。この端は、次のコードを使用して完全に正常に機能します。
var result:String = xmldata.Searchtext.(@Wordlookup == inputTxt.text.toLowerCase()).location.toString();
今は反対のことをしたいです。場所をクリックすると、コードがそのムービークリップの名前を xml 内の場所と照合し、その場所を明るくして、テキスト ボックスに人物の名前を出力します。唯一の問題は、Flash が私の xml 内のノードが未定義の変数であると考えているようです。私は解決策を検討しましたが、解決できないようです(おそらく単純であり、自分自身に直面します)エラーを引き起こすコードは次のとおりです。
var resultz:String = xmldata.Searchtext.(location.text() == inputTxt2.text()).Name.toString();
生成されるエラーは次のとおりです: ReferenceError: エラー #1065: 変数の場所が定義されていません。
編集:私はもともとinputTxt2.textをe.target.nameとして持っていましたが、今のところテキストボックスに投げているので、ロケーションノードに一致するものを出力していることがわかります。
なぜこれが起こっているのか正確にはわかりませんが、事前に助けてくれてありがとう!
別の編集: .* を追加します。:
var resultz:String = xmldata.*.Searchtext.(location.text() == inputTxt2.text()).Name.toString();
ノードを変数として作成するのをやめましたが、それでもnullを返します。一致する場所から名前を返すより良い方法はありますか? MC の名前が XML のノードと一致することを認識していないようです....