URLLoader を使用してサーバー (swf と同じドメイン) から XML ファイルをロードしようとしています。これは単純すぎるはずですが、エラー #2032: ストリーム エラーが発生します。
Mozilla が Flash Player にステータス コードを提供していないことを読んだことがありますが、HTTP ステータス イベントをトレースするとstatus=0と表示されるだけなので、参考にならないかもしれません。
Charles で HTTP トラフィックをスニッフィングしましたが、Flash は URL をロードしようとさえしていません。リクエストが行われないため、失敗することさえありません。
次のような内部 URL にある URL を参照できます: http://media.project:8080/audio/playlist.xml
そこに crossdomain.xml を入れてみました ( to-ports="8080" の有無にかかわらず) が、必要ないはずです。
onOpen イベントも onActivate イベントも発生せず、HTTPStatus が 1 つだけで、次に IOError が発生します。
Adobe の例から一般的な URLLoader コードをコピーしました。私の場合は次のようになります。
public class PlaylistLoader extends EventDispatcher
{
public var xmlLoader:URLLoader;
public var url:String = '';
public function PlaylistLoader(url:String)
{
url = url;
trace(url);
xmlLoader = new URLLoader();
xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
xmlLoader.addEventListener(Event.COMPLETE, onResult);
xmlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
xmlLoader.addEventListener(Event.OPEN, onOpen);
xmlLoader.addEventListener(Event.ACTIVATE, onActivate);
}
public function loadData():void {
var req:URLRequest = new URLRequest(url);
trace(req);
xmlLoader.load(req);
}
protected function onResult(e:Event):void
{
var xmlData:XML = e.target.data as XML;
parseData(xmlData);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
protected function onOpen(e:Event):void
{
trace(e);
}
protected function onActivate(e:Event):void
{
trace(e);
}
protected function onIOError(e:IOErrorEvent):void
{
trace(e);
}