2010-09-20 2 views
2

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

Если я могу отследить событие состояния HTTP это просто показывает статус = 0 хотя я читал, что Mozilla не предоставляет коды состояния для вспышки Игрок, может быть, он не информативен.

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

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

Я попытался положить crossdomain.xml там (с и без до-портов = «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); 
    } 

ответ

3
url = url; 

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

this.url = url; 
+0

Джиперс, вы правильно! – Anentropic

+0

Я мог бы поклясться, что написал такой код раньше, и он работал нормально, но, очевидно, не ... – Anentropic

+0

Отличный ответ! Не разрешает мою проблему = (Вернуться к Google ... – stevendesu

0

кажется URL строка пуста

public var url:String = ''; 

не так ли?

попробовать

public var url:String = 'http://media.project:8080/audio/playlist.xml'; 
+0

да, по той причине, описанной ниже тыкают – Anentropic

Смежные вопросы