当然といえば当然な話なのだけど。文法おかしい XML 食わせて例外出るから何事かと思って気付けませんでした。
まずは XML ファイルをロードするコードはこんな感じ。
var myReq:URLRequest = new URLRequest(); myReq.url = "file:///C:/a.html"; var urlLoader:URLLoader = new URLLoader(myReq); urlLoader.addEventListener(Event.COMPLETE, function(event:Event):void { try { var responseXML:XML = new XML(event.target.data); Alert.show(event.target.data); } catch (t:TypeError) { Alert.show(t.toString()); } });
で、こんな XML(というか HTML だけど)を食わせてみる。
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Refresh" > </head> </html>
よくよく見るとわかるんですが meta タグが閉じられてません。具体的に言うと .../> で終わってません。実行すると TypeError: Error #1085 ってエラーが出ます。エラー番号だけ出されても何のこっちゃわかりませんね。
ブラウザは HTML が多少間違ってようが文法がおかしかろうが、空気読んでテキトーに処理してくれるんですよね。それが常態化してるんでなかなかこのことに気付けませんでした。
テキトーな HTML を XML クラスに読み込んで E4X でラクラクアクセスじゃー、って目論んでたんだけど……野望が潰えてしまった。