Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Не грузится XML ;-( (http://www.flasher.ru/forum/showthread.php?t=82904)

feodus 23.07.2006 23:42

Не грузится 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"

что ему не так ??? А ???

feodus 24.07.2006 02:18

заметил еще что ...если в пути есть символы "_" или "!" он заменяет их на "%21" и прочую лабуду...
Кстати в приведенном примере он в пути, указанном в ошибке забыл про каталог, в котором собственно находится файл...не указал.

DJ_Baton 24.07.2006 03:17

попробуй не использовать заглавных букв в именах файлов, может поможет

KUZEN 24.07.2006 04:27

Код:

var menuXML:XML = new XML();
menuXML.ignoreWhite = true;
menuXML.onLoad = myParser;
menuXML.load("menuSystem.xml");

и проверь пути может не оттуды грузишь

olegn 24.07.2006 12:51

И еще, у тебя в пути нигде в имени каталога имен с кирилицей не встречается? В этом случае не работает.

inspace 24.07.2006 13:09

И посмотри в какой кодировке сохранен документ.

Badim 24.07.2006 14:19

а еще onLoad надо перед load определить.

silin 24.07.2006 14:25

во наговорили: не использовать заглавных букв, имен с кирилицей , в какой кодировке сохранен..
все это важно, канеш, тока сказано ж: Error opening URL "file:///H|/menuSystem.xml"
вот и смотри есть на H: такой файл?
к слову FLA у тебя тоже на H: лежит ?, если нет то смотри в Publish settings куда экспортится swf..

F_Flash 24.07.2006 14:30

Цитата:

Сообщение от Badim
а еще onLoad надо перед load определить.

не верно, порядок не важен, событие оnLoad стработает минимум только на следущем кадре, в этот момент фукция для onLoad будет определена.

iNils 24.07.2006 15:58

Цитата:

Сообщение от F_Flash
не верно, порядок не важен, событие оnLoad стработает минимум только на следущем кадре, в этот момент фукция для onLoad будет определена.

И в однокадровом скрипте тоже? Badim верно сказал, у Мука кстати тоже это для XML упомянуто.

F_Flash 24.07.2006 16:18

Цитата:

Сообщение от iNils
И в однокадровом скрипте тоже? 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 подразумеваентя не квадратик на таймлайне, а реально оброработка окончание флешового фрейма

olegn 24.07.2006 16:26

По-моему iNils прав. И Мук тоже прав. Математические расчеты типа frame++ здесь не помогут, поскольку рассматриваемые события как известно асинхронные. Другое дело, что при тестировании на сервере, да и локально тоже, есть небольшая задержка, которая дает возможность после старта загрузки успеть инициализироваться событию onLoad, пусть даже и определенному после. И по этой причине эту ситуацию практически нереально отловить. Но можно. В среде тестирования Flash, на относительно быстром компьютере, иногда удается ее воспроизвести в чистом виде: асинхронно загружается XML, так быстро, что onLoad не успевает...

silin 24.07.2006 16:35

если onLoad определена как function onLoad(){}, то поровну где ее размещать: компилятор сам ее передвинет в начало..
а если как ссылка на безымянную функцию onLoad=function(){}, то не поровну, потому как сами знаете почему..

F_Flash 24.07.2006 16:45

Цитата:

Сообщение от olegn
По-моему 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 успеет инициализироваться.

olegn 24.07.2006 17:20

ок, я быстро не смог въехать в этот пример, но спор не стоит продолжения.

Вопрос скорее философский, вернее, вопрос чистоты стиля. Потому что можно определить onLoad после вызова команды load, и в 99% и 99 в периоде это будет работать. Потому что пара строк кода априори выполнится быстрее, чем самое быстрое асинхронное событие.
Возражение (и вышеупомянутый совет Мука) вызван, как мне кажется, другим:
представьте ситуацию:
Вы говорите кому-то:
" после того, как я скажу "давай!" сделай то-то и то-то".
Это нормально, это будет работать.
А теперь представьте: Вы говорите (этому же человеку): "Я тебе скажу 'давай', а ты сделай!"
Вам уже смешно? Так этот человек спросит, если не дурак, "А что делать надо?" А Вы ему отвечаете: "Вот после команды 'Давай' и узнаешь..."
Резюме: все зависит от быстроты соображения этого человека (если он предпочитает медленно думать, он не согласится так поступать), но в любом случае это не-комфортный и чреватый алгоритм поведения, правильно ведь? Вот об этом и говорят, когда рекомендуют ЗАДАВАТЬ ПРАВИЛА ДО ТОГО, КАК ДАТЬ КОМАНДУ ИХ ИСПОЛЬЗОВАТЬ.
ОК, я заканчиваю полемику, работать надо.

F_Flash 24.07.2006 17:29

Цитата:

Сообщение от olegn
ок, я быстро не смог въехать в этот пример, но спор не стоит продолжения.
Вопрос скорее философский, вернее, вопрос чистоты стиля. Потому что можно определить onLoad после вызова команды load, и в 99% и 99 в периоде это будет работать. Потому что пара строк кода априори выполнится быстрее, чем самое быстрое асинхронное событие.
Возражение (и вышеупомянутый совет Мука) вызван, как мне кажется, другим:
представьте ситуацию: Вы говорите кому-то: после того, как я скажу "давай!" сделай то-то и то-то. Это нормально, это будет работать.
А теперь представьте: Вы говорите (этому же человеку): "Я тебе скажу 'давай', а ты сделай!"
Вам уже смешно? Так этот человек спросит, если не дурак, "А что делать надо?" А Вы ему отвечаете: "Вот после команды 'Давай' и узнаешь..."
Резюме: все зависит от быстроты соображения этого человека (если он предпочитает медленно думать, он не согласится так поступать), но в любом случае это не-комфортный и чреватый алгоритм поведения, правильно ведь? Вот об этом и говорят, когда рекомендуют ЗАДАВАТЬ ПРАВИЛА ДО ТОГО, КАК ДАТЬ КОМАНДУ ИХ ИСПОЛЬЗОВАТЬ.
ОК, я заканчиваю полемику, работать надо.



Вопрос идет важен или не важен проядок, а чистота кода это другой вариант. И полемка на человеческих примерах думаю не самый лучший варинт сравнения для данной ситуации:)

olegn 24.07.2006 17:34

ок :wacko:

feodus 24.07.2006 17:40

Если кому-то еще интересно:

Помогло средство от 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

народ реально надо...

F_Flash 30.09.2006 19:30

прикол:) грузишь txt а ошибку выдает на Untitled%2D4.swf :)

txt читается значит смотри формат файла самого


Часовой пояс GMT +4, время: 08:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.