Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 05.12.2003, 14:32
rojok-online вне форума Посмотреть профиль Отправить личное сообщение для rojok-online Найти все сообщения от rojok-online
  № 1  
rojok-online
 
Аватар для rojok-online

Регистрация: Sep 2003
Адрес: Санкт-Петербург
Сообщений: 166
Отправить сообщение для rojok-online с помощью ICQ
По умолчанию Я знаю что вопрос тупой, но блин не получается :(

Код:
this.onEnterFrame = function() {
	site.loadMovie("1.jpg");
	var loaded = site.getBytesLoaded();
	var total = site.getBytesTotal();
	var percent = Math.floor((loaded/total)*100);
	bar._xscale = percent;
	stat.text = percent+" %";
	if (total<loaded) {
		site._visible = false;
	} else {
		site._visible = true;
		delete this.onEnterFrame;
	}
};
Почему не происходит загрузка ?!?!

Старый 05.12.2003, 14:37
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 2  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
По умолчанию потомушта

первые две строчки скрипта поменяй местами :)

Старый 05.12.2003, 14:41
rojok-online вне форума Посмотреть профиль Отправить личное сообщение для rojok-online Найти все сообщения от rojok-online
  № 3  
rojok-online
 
Аватар для rojok-online

Регистрация: Sep 2003
Адрес: Санкт-Петербург
Сообщений: 166
Отправить сообщение для rojok-online с помощью ICQ
Код:
site.loadMovie("1.jpg");
this.onEnterFrame = function() {
	var loaded = site.getBytesLoaded();
	var total = site.getBytesTotal();
	var percent = Math.floor((loaded/total)*100);
	bar._xscale = percent;
	stat.text = percent+" %";
	if (total<loaded) {
		site._visible = false;
	} else {
		site._visible = true;
		delete this.onEnterFrame;
	}
};
поменял (( и все равно не фурычит
проценты не увелич от 0 до 100, а сразу показывает 100%, и "bar" не изменяет формы по оси "х"

Старый 05.12.2003, 15:10
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 4  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
в первые кадры после начала загрузки у тебя скорее всего total и loaded равны нулю. и то и другое. поэтому сразу срабатывает как будето все загрузилось уже.

напиши вместо if (total<loaded) {

if (total && loaded && loaded>=total) {

Старый 06.12.2003, 03:40
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 5  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Цитата:
напиши вместо if (total<loaded) {

if (total && loaded && loaded>=total) {
Зуб на отсечение даю: - Nox сейчас пьян вдребезги.

2rojok-online
Таким способом ты не отследишь загрузку картинки. Так ты только измеряешь "вес" ПУСТОГО МС "site". А пустой он загружается мгновенно, то есть total = loaded.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 06.12.2003, 11:52
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Оригинал написал(а) sergwizard
пьян вдребезги
толька не нада грязи :))

че-то ты непонятное говоришь по=моему... все работает же, если проверку правильную поставить :)

Старый 07.12.2003, 00:51
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 7  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Цитата:
толька не нада грязи )
че-то ты непонятное говоришь по=моему... все работает же, если проверку правильную поставить
А где здесь грязь? Никакой грязи. Вчера ты, сегодня – я. Но мы же просто так, - у нас повод есть. Причина. Уважительная. Имеем право.
А вот как проверку правильную поставить, - в этом-то и вопрос.
А насчет непонятностей…. Ну, давай представим себе такую ситуацию:
Ставим на весы некий сосуд. Вес самого сосуда считаем равным 0. Затем тонкой, но непрерывной струйкой льем в нее (для чистоты эксперимента) воду. И постоянно, с интервалом в 1/30 секунды отслеживаем ОБЩИЙ вес, и ЗАГРУЖЕННЫЙ вес. И что мы видим? Что ОБЩ.(total) и ЗАГ.(loaded) все время растут (до тех пор, пока сосуд не наполнится). Но, между собой – естественно – равны.
- Ага, говоришь ты, - а какой емкости этот сосуд? Если этот сосуд, допустим, 2 литра, то ОБЩ(total) должно быть 2000 гр. И тогда мы запросто можем отследить процент загруженности этого сосуда. Верно! Но для этого мы заранее должны знать емкость сосуда. Но мы же грузим картинку в ПУСТОЙ MovieClip. А он – безразмерный. И мы можем грузить в него картинку весом 3 Kb, а можем и 200 Kb.
Ну и как теперь нам это все отследить и посчитать? Как нам "проверку правильную поставить"? Наверное, есть способ. Но только не тот, который предлагает rojok-online. Мало того что он бесполезный, но в нем еще грубейшая ошибка: "if (total<loaded) {". То есть, если ОБЩЕЕ меньше ЧАСТИ…
"И твои исправления: "if (total && loaded && loaded>=total) {" (что это – вообще - означает?) ничего не исправляют в данной ситуевине.
Вот просплюсь, отрезвею, и тогда что-нибудь более толковое сообщу.
Если смогу.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 08.12.2003, 12:39
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 8  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
я может не понял о чем мы тут спорим ? :))
Цитата:
Оригинал написал(а) sergwizard
if (total && loaded && loaded>=total) {
это... че-то я не понимаю в чем загвоздка :)

при загрузке чего-то в клип, размер этого "чего-то" определяется как только приходит первая порция данных. но даже если бы это было не так... это же в принципе ничего не меняет. такая проверка - просто универсальный вариант

if (total && loaded && loaded>=total) {
означает:

— если тотал и лоадед определены и не равны нулю
— и если лоадед не меньше тотал

смущает что вторая часть со знаком >= ?
это для того чтобы не было косяков с загрузкой в клип созданный руками в таймлайне а не скриптом. (потому как тогда общий размер "пустого" клипа - 4 байта, а не ноль)


Последний раз редактировалось Nox Noctis; 08.12.2003 в 12:50.
Старый 08.12.2003, 23:11
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 9  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Может быть, я не совсем ясно объяснился. Попробую еще раз.
Когда мы используем loadMovie и подгружаем swf файл, то плэйер считывает в заголовке swf файла его размер. То есть, getBytesTotal() - известная величина. И теперь мы можем спокойно сравнивать getBytesTotal() и getBytesLoaded(), и вытворять на основе этих сравнений все, что нам угодно.
Но, когда мы подгружаем jpg, у нас (у плэйера) нет информации о размере файла. И для него, при каждом onEnterFrame измерении оказывается, что getBytesTotal() и getBytesLoaded() таргета равны между собой. И использовать проверку if (total && loaded && loaded>=total) { - просто бессмысленно.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 09.12.2003, 01:37
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 10  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Оригинал написал(а) sergwizard
Но, когда мы подгружаем jpg, у нас (у плэйера) нет информации о размере файла. И для него, при каждом onEnterFrame измерении оказывается, что getBytesTotal() и getBytesLoaded() таргета равны между собой. И использовать проверку if (total && loaded && loaded>=total) { - просто бессмысленно.
либо мы до сих пор каким-то чудом говорим о разном - либо это глу-пос-ти :)

я этим пользовался ооочень много раз, и оно работает как надо.

смотрим:
http://slaindream.dyp.spb.ru/load_jpg.html
(там подгружается картинка на триста кило, с модема все оч наглядно)

в исходнике только текстовое поле и вот этот код:
Код:
this.createEmptyMovieClip("test", 1);
test._x = int(TF._x+TF._width);
test._y = int(TF._y);
TF.text += "click !\n\n";
this.onMouseDown = function() {
	TF.text += "___loading started___\n";
	test.loadMovie("_beer.jpg");
	this.onEnterFrame = function() {
		var l = test.getBytesLoaded();
		var t = test.getBytesTotal();
		TF.text += "...\ttotal: "+t+" loaded: "+l+"\n";
		if (l && t && l>=t) {
			delete this.onEnterFrame;
			TF.text += "___loading finished___";
		}
		TF.scroll = TF.maxscroll;
	};
	delete this.onMouseDown;
};
Вложения
Тип файла: zip 4wizard.zip (3.7 Кб, 102 просмотров)

Создать новую тему   Часовой пояс GMT +4, время: 12:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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