Просмотр полной версии : не грузится 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:
почему бы не использовать относительный путь файла?
Warrgoth
20.05.2007, 13:56
делал уже)
и другой путь тоже....
ошибка идентична. такое ощущение что он намертво закэшировал путь.
Это возможно?
и как ето лечить?
перезагрузка компа не помогла...
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" - попытка загрузить файл
чего вообще тварится??
Исходник — это файл с расширением fla. В данном коде вроде все нормально, не считая того, что пути надо использовать относительные (это я про закомментированный путь).
Warrgoth
20.05.2007, 15:17
не могу загрузить исходник... говорит неудачно и все...
размер 5 кб... ужос.
переустановил флэш.. проблема осталась.
путь по прежнему тот же.
может диск почекать?
есть идеи у кого?
Путь прописывай так:
file://C:/Documents and Settings/Warrgoth/Рабочий стол/jpeg_slideshow_xml/slideshow/slides.xml
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 ?
что делать?
if(success == true && this.status == 0){
//...
} else {
trace("Error: " + this.status);
}
Что теперь?
Warrgoth
21.05.2007, 17:44
slides.xml
Error!Cause by: undefined
вот это..(
Конечно, ведь к 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"
Выкладывайте уже исходник (не код, а fla-файл).
так:
if( success == true ){...}
лучше не писать, засмеют.
У вас теперь путь потерялся.
Warrgoth
21.05.2007, 18:16
http://www.liveinternet.ru/users/warrgoth/post39788747/
вот тут
больше некуда просто .. извиняйте.:o
путь верен.
файл такой там есть. Точно.
папка с картинками находится в одной дире с флэш-файлом, и xml-файл тоже.
slides.xml
Error!Cause by: 0
Error opening URL 'file:///c|/Download/3584011%5Fexp/slides.xml'
Файла нет, логично. Никаких undefined.
все нормально вроде:
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/
вот тут есть и файл и картинки и фла.
потестите плиз.. )
Так ошибка загрузки не XML, а клипа. XML грузится нормально, обработчик внутри onLoad криво написан.
Warrgoth
21.05.2007, 19:52
хм.
ясно.. а вот можно намекнуть, где именно? а то не пойму никак...
или в хелп? =))
Ошибки в строках:
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
Все исправил, спасибо.
Работает.
Есть еще вопрос.. но об этом - в другой теме))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.