Как загрузить внешний XML с помощью приложения Air для Flash программист? - PullRequest
1 голос
/ 14 апреля 2010

Я столкнулся с этой проблемой пару дней назад, пытаясь импортировать внешний XML-файл в приложение AIR.

 import flash.net.URLRequest;
 var ldr:Loader = new Loader();
 var url:String = "http://willperone.net/rss.php";
 var urlReq:URLRequest = new URLRequest(url);
 ldr.load(urlReq);
 ldr.addEventListener(Event.COMPLETE , function(e) {
    trace('Wow, completed ...');
 });
 ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(e) {
    trace('IO_ERROR');
 });

и всегда отображается IO_ERROR. Могу ли я сделать это неправильно или что-то нужно немного настроить, поэтому, пожалуйста, помогите

Ответы [ 2 ]

2 голосов
/ 14 апреля 2010

IOErrorEvent говорит вам, что не может загрузить ресурс, который вы пытаетесь загрузить. Есть ли что-нибудь на самом деле в http://willperone.net/rss.php. Возможно, ошибка синтаксического анализа XML или PHP? Я также заметил, что вы используете Loader для загрузки текстового содержимого. Класс, который вы хотите использовать для загрузки XML (или текста, json, двоичного файла и т. Д.), Равен URLLoader. Loader - это подкласс DisplayObject, в основном для загрузки SWF-файлов, изображений и визуальных ресурсов в список отображения. Это вероятный виновник.

0 голосов
/ 18 апреля 2010

Спасибо, ребята, я нашел, где проблема: я не указал тип полученного контента, это решено, когда я использовал

request.contentType = "text/xml";

поэтому код будет выглядеть так:

function getData(onComplete) {
    var request:URLRequest = new URLRequest("http://...");
    request.contentType = "text/xml";
    request.data = "";
    request.method = URLRequestMethod.POST;
    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE ,function(e) { xmlParser(e); onComplete(e); } );
    try
    {
        mainData.splice(0,mainData.length);
        loader.load(request);
        return true;
    }
    catch (e){
        return false;
    }
}


function xmlParser(e) {
    var xml:XML = new XML(URLLoader(e.target).data);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...