Форум 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)

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

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


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

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