PDA

Просмотр полной версии : не загружается во флеш XML


Lexx555
17.11.2006, 17:42
У меня проблема: сделал загрузку xml во флеш. На локале все прекрасно работает, но выкладываю на сервер, и флеш уже не может подгрузить xml. Делаю все по правилам.

Вот код:

var xmlURL = "/flash/data/_data.xml";
var aaa:Array = [];
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load(xmlURL);
myXML.onLoad = function(success){
if(success){
rootNode = myXML.firstChild.firstChild;
var i=0;
for (var aNode:XMLNode = rootNode; aNode != null; aNode = aNode.nextSibling) {
aaa = aaa.concat([
aNode.attributes["id"].toString(), aNode.attributes["title"].toString()]);
}
}
else {
trace("Ошибочка вышла");
}
}

Просто не понимаю в чем может быть проблема

Сам XML:

<datas>
<data id="1" title="name 1"></data>
</datas>

El Scream
17.11.2006, 17:45
теги [code][ /code] расставь пока я думаю ))

El Scream
17.11.2006, 17:49
проблемма в пути. для теста попробуй все в один каталог засунь и проверь с

var xmlURL = "_data.xml";

это первое.
Второе
и собссно не увидел куда ты энто все потом деваешь если XML нормально загрузилсо.

Lexx555
17.11.2006, 17:51
не помогает. Инфа вся кидается в массив

Вообще я сделал - все действия делаются в onLoad { } после загрузки xml

Lexx555
17.11.2006, 18:13
проблему решил, но появилась другая. щас проверю на сколько большая

El Scream
17.11.2006, 18:13
создай БОЛЬШОЕ тестовое поле, назови его trace_me и напиши так

myXML.onLoad = function(success){

if(success){
rootNode = myXML.firstChild.firstChild;
_root.trace_me.text="Загруженный XML:"+rootNode.toString();
var i=0;
for (var aNode:XMLNode = rootNode; aNode != null; aNode = aNode.nextSibling) {
aaa = aaa.concat([
aNode.attributes["id"].toString(), aNode.attributes["title"].toString()]);
}
}
else {
trace("Ошибочка вышла");
}
}

Lexx555
17.11.2006, 18:20
короче спасибо, в этом нет необходимости, XML читается, но изза rewrite'ов на сайте этот XML неправильно воспринимается и преобразуется получается чепуха. Но даже такой результат появился только после того как прописали в параметрах вывода flash'a allowAccessDomain = always, хоть воспринимать начал, но эту проблему буду решать уже не я.

Спасибо за ответы все равно!

Kikasso
17.11.2006, 20:53
1) не забывайте про utf-8
2) я рекомендую onLoad проверять еще и корректность xml:
myXML.onLoad = function(success){
if(!success){
//не загрузилось !
}else if(this.status < 0){
//некорректный xml !
}else{
//тут все ок.
}
}
В твоем случае, если ты адресом ошибешся, то все равно success, потому что сервак заботливо тебе подсунет страничку. Но это явно не то что тебе надо, что и отловится второй проверкой.