Форум 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)
-   -   "error opening URL"(.loadMovie)-можно ли обрабатать этот exception? (http://www.flasher.ru/forum/showthread.php?t=70818)

ebu 22.10.2005 17:44

"error opening URL"(.loadMovie)-можно ли обрабатать этот exception?
 
если тема такая была ткните носом плз! ;)

ситуация:
1. есть флэш, в котором по нажатию на кнопку при помощи .loadMovie(); подгружается другие swf
2. прелоадер сказачно работает! ;) (и под ff, ie, opera), но бывает такая ситуация, когда сервер на котором хранятся загружаемые объекты - падает - соотвественно, загрузить не удается! (или например, отсутствует файл на сервере)
3. когда мы смотрим в flash mx в output выдается такая строка: "Error opening URL "test.swf""

возникает вопрос: можно ли обработать такую ситуацию?

(в плане, того, что если случается подобная ошибка - менять поведение главного ролика - например, выдавать, что-то похожее на #404 или писать "файл временно не доступен, попробуйте обратиться к нему позднее")

(думал, что простым if прокатит, но как известно loadMovie - return: nothing. т.е. нужен наверно, какой либо изощеренный способ... :D )

seifip 22.10.2005 17:53

zhdi AS3

7thsky™ 22.10.2005 18:18

можно:

в 7 есть класс MovieClipLoader, есть евент ошибки загрузки
то же самое можно эмулировать через getBytesLoaded (), getBytesTotal ();

ebu 22.10.2005 18:50

возникают вопросы по поводу эмуляции...
 
Цитата:

Сообщение от 7thsky™
же самое можно эмулировать через getBytesLoaded (), getBytesTotal ();

1. а как думаете сколько нужно ждать, чтобы явно определить, что сервер не ответил? (я понимаю, что это надо эксперементально проверять, но выделенка - это выделенка, там сразу если закачка не началась - то выдаем. а если dialup?)

2. и еще один вопрос: как сделать задержку выполнения скрипта, чтобы осуществить проверку (пришли ли вообще байты или нет)?

Цитата:

Сообщение от 7thsky™
в 7 есть класс MovieClipLoader, есть евент ошибки загрузки

в 7 - это значит необходимо использовать flash 2004 mx? (а не flash mx)

7thsky™ 22.10.2005 20:33

Да в MX нету такого класса, + там еще по другому плеер расчитывает байты


Если ты хочешь эмулировать в семерке через getBytesLoaded (); getBytesTotal ();
посмотри >> тута <<

ebu 24.10.2005 09:58

Спасибо! =)
 
Цитата:

Сообщение от 7thsky™
Если ты хочешь эмулировать в семерке через getBytesLoaded (); getBytesTotal ();
посмотри >> тута <<

Спасибо, огромное! ;) Буду фтыкать и переосмысливать. (ведь простой копипаст - только во вред продолжающим... :p )

ebu 25.10.2005 22:11

долго размышлял... легче не стало!
 
втыкал в предложенный скрипт:

this.onEnterFrame = function () {
var lo = this.mc.getBytesLoaded ();
var to = this.mc.getBytesTotal ();
if (lo * to > 0 && lo >= to) {
delete this.onEnterFrame;
nextAction ();
}
}

наверно руки кривые? но странность какая-то наблюдается, при отсутствии клипа - во внутрь if не заходит (смотрел в debugger) - почему??? (название клипа и получаемы значения верны! - по watch)

и вообще: этот if обрабатывает ситуацию, когда файла нет???

7thsky™ 26.10.2005 01:46

пример в студию...

ebu 26.10.2005 19:52

7thsky™ спасибо! ;)
 
все разобрался. не верные условия в if (для моего случая не так надо была) спасибо!

ebu 29.10.2005 15:50

почему???
 
if (emty_mc.getBytesTotal() == -1) {
delete this.onEnterFrame;
}

trace показывает, что -1! (т.е. файла физически не существует) проверяю - по if (и если действительно нет, то удаляю)

но еще ни разу при дебаге во внутрь захода не осуществилось!

почему? :confused: есть догадки?


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

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