PDA

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


Warrgoth
20.05.2007, 13:38
Error opening URL "file:///D|/work/PROJECT/undefined" - это выдает флэш.


var path:String = "D:/work/PROJECT/slides.xml";
var myXML:XML = new XML();
myXML.ignoreWhite = true;

my_mc.onRollOver = function() {
myXML.load(path);
myXML.onLoad = loadSlide;
}


D:/work/PROJECT/slides.xml - это файл стопроцентно существует.
в чем дело, кто в курсе?
самое интересное в том что минут 15 назад все работало.:wacko:

BigDan
20.05.2007, 13:50
почему бы не использовать относительный путь файла?

Warrgoth
20.05.2007, 13:56
делал уже)
и другой путь тоже....

ошибка идентична. такое ощущение что он намертво закэшировал путь.
Это возможно?
и как ето лечить?
перезагрузка компа не помогла...

etc
20.05.2007, 14:13
Выкладывайте исходник.

Warrgoth
20.05.2007, 14:33
var path:String = "slides.xml";
//var path_file:String = "C:/Documents and Settings/Warrgoth/Рабочий стол/jpeg_slideshow_xml/slideshow/slides.xml"
var newXML:XML = new XML();
newXML.ignoreWhite = true;

my_mc.onRollOver = function() {
trace(path);
newXML.load(path);
newXML.onLoad = loadSlide;
}

function randomNum(min:Number,max:Number):Number {
var randNum:Number = Math.round(Math.random()*(max-min))+Math.min(max,min);
return randNum;
};


function loadSlide(success){
if(success == true){
rootNode = myXML.firstChild;
totalSlides = rootNode.childNodes.length;
var arr:Array = myXML.childNodes;
var num:Number = randomNum(1,5);
currentSlideNode = rootNode.firstChild;
updateSlide(arr[num]);
}
}

function updateSlide(newSlideNode:XML) {
imagePath = newSlideNode.attributes.jpegURL;
slideText = newSlideNode.firstChild.nodeValue;
loadMovie(imagePath,my_mc.my2_mc);
}


трассировка переменной path показывает что путь верен.
однако...

slides.xml - трассировка
Error opening URL "file:///D|/work/PROJECT/undefined" - попытка загрузить файл

чего вообще тварится??

etc
20.05.2007, 14:42
Исходник — это файл с расширением fla. В данном коде вроде все нормально, не считая того, что пути надо использовать относительные (это я про закомментированный путь).

Warrgoth
20.05.2007, 15:17
не могу загрузить исходник... говорит неудачно и все...
размер 5 кб... ужос.

переустановил флэш.. проблема осталась.
путь по прежнему тот же.
может диск почекать?

есть идеи у кого?

BigDan
20.05.2007, 15:41
Путь прописывай так:

file://C:/Documents and Settings/Warrgoth/Рабочий стол/jpeg_slideshow_xml/slideshow/slides.xml

etc
20.05.2007, 20:11
BigDan, вредный совет. Тем более, путь нерабочий.

Warrgoth, аплоад на форум пока не работает, можно залить на какую-нибудь файловую помойку.

†‡Paladin‡†
21.05.2007, 00:42
Немножко поправил и протестил код. Все работает.

var path:String = "slides.xml";

newXML = new XML();
newXML.ignoreWhite = true;
newXML.onLoad = loadSlide();

my_mc.onRollOver = function() {
trace(path);
newXML.load(path);
}

function randomNum(min:Number,max:Number):Number {
var randNum:Number = Math.round(Math.random()*(max-min))+Math.min(max,min);
return randNum;
};


function loadSlide(success){
if(success == true){
rootNode = myXML.firstChild;
totalSlides = rootNode.childNodes.length;
var arr:Array = myXML.childNodes;
var num:Number = randomNum(1,5);
currentSlideNode = rootNode.firstChild;
updateSlide(arr[num]);
}
}

function updateSlide(newSlideNode:XML) {
imagePath = newSlideNode.attributes.jpegURL;
slideText = newSlideNode.firstChild.nodeValue;
loadMovie(imagePath,my_mc.my2_mc);
}

Warrgoth
21.05.2007, 17:39
вот код, я немного его разбавил трассировкой...


var path:String = "slides.xml";

newXML = new XML();
newXML.ignoreWhite = true;


my_mc.onRollOver = function() {
trace(path);
newXML.load(path);
newXML.onLoad = loadSlide();
}

function randomNum(min:Number,max:Number):Number {
var randNum:Number = Math.round(Math.random()*(max-min))+Math.min(max,min);
return randNum;
};


function loadSlide(success){
if(success == true){
rootNode = myXML.firstChild;
totalSlides = rootNode.childNodes.length;
var arr:Array = myXML.childNodes;
var num:Number = randomNum(1,5);
currentSlideNode = rootNode.firstChild;
updateSlide(arr[num]);
} else {
trace("Error");
}
}

function updateSlide(newSlideNode:XML) {
imagePath = newSlideNode.attributes.jpegURL;
slideText = newSlideNode.firstChild.nodeValue;
loadMovie(imagePath,my_mc);
}


на выходе получаю:

slides.xml
Error - ПОЧЕМУ???! :eek:

я так понимаю что он не может обработать файл XML ?
что делать?

Kikasso
21.05.2007, 17:42
if(success == true && this.status == 0){
//...
} else {
trace("Error: " + this.status);
}
Что теперь?

Warrgoth
21.05.2007, 17:44
slides.xml
Error!Cause by: undefined

вот это..(

etc
21.05.2007, 17:47
Конечно, ведь к onLoad присвается результат вызова функции, а не ссылка на неё. Предлагается самому додумать, что лишнее в строке с onLoad.

Warrgoth
21.05.2007, 17:55
newXML.onLoad = function(success:Boolean){
if(success == true && this.status == 0){
rootNode = myXML.firstChild;
totalSlides = rootNode.childNodes.length;
var arr:Array = myXML.childNodes;
var num:Number = randomNum(1,5);
currentSlideNode = rootNode.firstChild;
updateSlide(arr[num]);
} else {
trace("Error!Cause by: "+this.status);
}
}


это типичный случай, который описан в хелпе. точно так все и делается.
тем не менее на выходе получаю теперь:

slides.xml
Error opening URL "file:///D|/work/PROJECT/undefined"

etc
21.05.2007, 18:04
Выкладывайте уже исходник (не код, а fla-файл).

Kikasso
21.05.2007, 18:14
так:
if( success == true ){...}
лучше не писать, засмеют.
У вас теперь путь потерялся.

Warrgoth
21.05.2007, 18:16
http://www.liveinternet.ru/users/warrgoth/post39788747/
вот тут
больше некуда просто .. извиняйте.:o

путь верен.
файл такой там есть. Точно.
папка с картинками находится в одной дире с флэш-файлом, и xml-файл тоже.

etc
21.05.2007, 18:26
slides.xml
Error!Cause by: 0
Error opening URL 'file:///c|/Download/3584011%5Fexp/slides.xml'

Файла нет, логично. Никаких undefined.

Kikasso
21.05.2007, 18:27
все нормально вроде:
slides.xml
Error!Cause by: 0
Error opening URL "file:///C|/DOCUME%7E1/A2B2%7E1/LOCALS%7E1/Temp/Rar%24DI00.312/slides.xml"
перевод: файла нет
PS - там тебе уже коммент написали ))

upd - __etc, FF используете?

Warrgoth
21.05.2007, 19:13
http://www.liveinternet.ru/users/warrgoth/post39793725/
вот тут есть и файл и картинки и фла.
потестите плиз.. )

etc
21.05.2007, 19:29
Так ошибка загрузки не XML, а клипа. XML грузится нормально, обработчик внутри onLoad криво написан.

Warrgoth
21.05.2007, 19:52
хм.
ясно.. а вот можно намекнуть, где именно? а то не пойму никак...
или в хелп? =))

etc
21.05.2007, 19:58
Ошибки в строках:
rootNode = myXML.firstChild;
totalSlides = rootNode.childNodes.length;
var arr:Array = myXML.childNodes;
var num:Number = randomNum(1,5);
currentSlideNode = rootNode.firstChild;
updateSlide(arr[num]);

Предлагается исправить все самостоятельно.

Warrgoth
22.05.2007, 13:10
Все исправил, спасибо.
Работает.
Есть еще вопрос.. но об этом - в другой теме))