Просмотр полной версии : Не грузится XML ;-(
подскажите плизз...
вот обычный кусок загрузки XML файла, который находится в том же каталоге что и FLA...
делается на 8-ке.
var menuXML:XML = new XML();
menuXML.ignoreWhite = true;
menuXML.load("menuSystem.xml");
menuXML.onLoad = myParser;
При компиляции выдает:
Error opening URL "file:///H|/menuSystem.xml"
что ему не так ??? А ???
заметил еще что ...если в пути есть символы "_" или "!" он заменяет их на "%21" и прочую лабуду...
Кстати в приведенном примере он в пути, указанном в ошибке забыл про каталог, в котором собственно находится файл...не указал.
DJ_Baton
24.07.2006, 03:17
попробуй не использовать заглавных букв в именах файлов, может поможет
var menuXML:XML = new XML();
menuXML.ignoreWhite = true;
menuXML.onLoad = myParser;
menuXML.load("menuSystem.xml");
и проверь пути может не оттуды грузишь
И еще, у тебя в пути нигде в имени каталога имен с кирилицей не встречается? В этом случае не работает.
И посмотри в какой кодировке сохранен документ.
а еще onLoad надо перед load определить.
во наговорили: не использовать заглавных букв, имен с кирилицей , в какой кодировке сохранен..
все это важно, канеш, тока сказано ж: Error opening URL "file:///H|/menuSystem.xml"
вот и смотри есть на H: такой файл?
к слову FLA у тебя тоже на H: лежит ?, если нет то смотри в Publish settings куда экспортится swf..
а еще onLoad надо перед load определить.
не верно, порядок не важен, событие оnLoad стработает минимум только на следущем кадре, в этот момент фукция для onLoad будет определена.
не верно, порядок не важен, событие оnLoad стработает минимум только на следущем кадре, в этот момент фукция для onLoad будет определена.И в однокадровом скрипте тоже? Badim верно сказал, у Мука кстати тоже это для XML упомянуто.
И в однокадровом скрипте тоже? Badim верно сказал, у Мука кстати тоже это для XML упомянуто.
xml=new XML();
xml.load("minemenu.xml");
trace("send request");
xml.onLoad=function(){
trace("xml loaded");
}
frame=1;
this.onEnterFrame=function(){
trace("frame=" + Number(frame++));
}
Приведи пример кода когда событие onLoad стработет в том же фрейме в котором был вызван метод load Понятие frame подразумеваентя не квадратик на таймлайне, а реально оброработка окончание флешового фрейма
По-моему iNils прав. И Мук тоже прав. Математические расчеты типа frame++ здесь не помогут, поскольку рассматриваемые события как известно асинхронные. Другое дело, что при тестировании на сервере, да и локально тоже, есть небольшая задержка, которая дает возможность после старта загрузки успеть инициализироваться событию onLoad, пусть даже и определенному после. И по этой причине эту ситуацию практически нереально отловить. Но можно. В среде тестирования Flash, на относительно быстром компьютере, иногда удается ее воспроизвести в чистом виде: асинхронно загружается XML, так быстро, что onLoad не успевает...
если onLoad определена как function onLoad(){}, то поровну где ее размещать: компилятор сам ее передвинет в начало..
а если как ссылка на безымянную функцию onLoad=function(){}, то не поровну, потому как сами знаете почему..
По-моему iNils прав. И Мук тоже прав. Математические расчеты типа frame++ здесь не помогут, поскольку рассматриваемые события как известно асинхронные. Другое дело, что при тестировании на сервере, да и локально тоже, есть небольшая задержка, которая дает возможность после старта загрузки успеть инициализироваться событию onLoad, пусть даже и определенному после. И по этой причине эту ситуацию практически нереально отловить. Но можно. В среде тестирования Flash, на относительно быстром компьютере, иногда удается ее воспроизвести в чистом виде: асинхронно загружается XML, так быстро, что onLoad не успевает...
:)
xml=new XML();
xml.load("minemenu.xml");
trace("send request");
frame=1;
for(i=1;i<2000000;i++){
}
xml.onLoad=mf;
this.onEnterFrame=function(){
trace("frame=" + Number(frame++));
}
function mf(){
trace("xmlloaded");
}
Пожалуйста, нет проблем поставим задержку до объявления функции on load. собылие onload никогда не стработет в том же кадре где был вызван метод load . Соотвественно функция onload успеет инициализироваться.
ок, я быстро не смог въехать в этот пример, но спор не стоит продолжения.
Вопрос скорее философский, вернее, вопрос чистоты стиля. Потому что можно определить onLoad после вызова команды load, и в 99% и 99 в периоде это будет работать. Потому что пара строк кода априори выполнится быстрее, чем самое быстрое асинхронное событие.
Возражение (и вышеупомянутый совет Мука) вызван, как мне кажется, другим:
представьте ситуацию:
Вы говорите кому-то:
" после того, как я скажу "давай!" сделай то-то и то-то".
Это нормально, это будет работать.
А теперь представьте: Вы говорите (этому же человеку): "Я тебе скажу 'давай', а ты сделай!"
Вам уже смешно? Так этот человек спросит, если не дурак, "А что делать надо?" А Вы ему отвечаете: "Вот после команды 'Давай' и узнаешь..."
Резюме: все зависит от быстроты соображения этого человека (если он предпочитает медленно думать, он не согласится так поступать), но в любом случае это не-комфортный и чреватый алгоритм поведения, правильно ведь? Вот об этом и говорят, когда рекомендуют ЗАДАВАТЬ ПРАВИЛА ДО ТОГО, КАК ДАТЬ КОМАНДУ ИХ ИСПОЛЬЗОВАТЬ.
ОК, я заканчиваю полемику, работать надо.
ок, я быстро не смог въехать в этот пример, но спор не стоит продолжения.
Вопрос скорее философский, вернее, вопрос чистоты стиля. Потому что можно определить onLoad после вызова команды load, и в 99% и 99 в периоде это будет работать. Потому что пара строк кода априори выполнится быстрее, чем самое быстрое асинхронное событие.
Возражение (и вышеупомянутый совет Мука) вызван, как мне кажется, другим:
представьте ситуацию: Вы говорите кому-то: после того, как я скажу "давай!" сделай то-то и то-то. Это нормально, это будет работать.
А теперь представьте: Вы говорите (этому же человеку): "Я тебе скажу 'давай', а ты сделай!"
Вам уже смешно? Так этот человек спросит, если не дурак, "А что делать надо?" А Вы ему отвечаете: "Вот после команды 'Давай' и узнаешь..."
Резюме: все зависит от быстроты соображения этого человека (если он предпочитает медленно думать, он не согласится так поступать), но в любом случае это не-комфортный и чреватый алгоритм поведения, правильно ведь? Вот об этом и говорят, когда рекомендуют ЗАДАВАТЬ ПРАВИЛА ДО ТОГО, КАК ДАТЬ КОМАНДУ ИХ ИСПОЛЬЗОВАТЬ.
ОК, я заканчиваю полемику, работать надо.
Вопрос идет важен или не важен проядок, а чистота кода это другой вариант. И полемка на человеческих примерах думаю не самый лучший варинт сравнения для данной ситуации:)
Если кому-то еще интересно:
Помогло средство от DJ Baton "попробуй не использовать заглавных букв в именах файлов, может поможет"
Каталог, который не показывался в сообщении об ошибке содержал заглавные....после исправления все забегало...
Спасибо всем !
soloveich
28.09.2006, 01:02
у меня та же фигня, только ничего из выше перечисленного меня не спасёт т.к. этого нет. идёт стандартное loadVariablesNum("test.txt",0); а ошибку выдаёт следующую Error opening URL "file:///C|/Documents%20and%20Settings/TEMP/Desktop/New%20Folder/%3F%3F%3F%3F%3F%3F/%3F%3F%3F%3F%3F%3F%3F%3F%3F/Untitled%2D4.swf"
з.ы.
знаю, что чайник. :) если кто то знает пожалуйста ответте т.к. срочно надо :)
soloveich
28.09.2006, 02:18
народ реально надо...
прикол:) грузишь txt а ошибку выдает на Untitled%2D4.swf :)
txt читается значит смотри формат файла самого
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.