URLLoader даже не пытается загрузить.Ошибка № 2032: ошибка потока - PullRequest
2 голосов
/ 20 сентября 2010

Я пытаюсь использовать URLLoader для загрузки файла XML с сервера (того же домена, что и SWF).Это должно быть слишком просто, но я получаю Ошибка # 2032: Ошибка потока

Если я отслеживаю событие состояния HTTP, оно просто показывает status = 0 , хотя я прочиталчто Mozilla не предоставляет коды состояния для Flash Player, так что, возможно, это не информативно.

Я прослушал HTTP-трафик с Чарльзом, и Flash даже не пытается загрузить URL-адрес - запрос не сделан, поэтомудаже не дает сбоя.

Я могу перейти к URL-адресу, который находится на внутреннем URL-адресе, который выглядит следующим образом: http://media.project:8080/audio/playlist.xml

Я попытался поместить туда crossdomain.xml (си без to-ports = "8080" ), хотя он не нужен.

Ни события onOpen, ни onActivate не запускаются, только один HTTPStatus и затем IOError.

Я скопировал общий код URLLoader из примера Adobe, мой выглядит так:

    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);
    }

Ответы [ 2 ]

3 голосов
/ 20 сентября 2010
url = url;

в конструкторе устанавливает local url в local url. Если вы хотите сохранить это значение внутри объекта, вам нужно явно сослаться на член объекта url (или использовать другое имя):

this.url = url;
0 голосов
/ 20 сентября 2010

кажется, что строка URL все еще пуста

public var url:String = '';

не так ли?

try

public var url:String = 'http://media.project:8080/audio/playlist.xml';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...