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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Question А как сделать "Спидометр загрузки"?

Хочу спидометр который бы показывал скорость загрузки. Соответственно мне надо:

BytesLoaded / время за которое это загружено

либо

BytesTotal / общее время загрузки.

А вот как мне вычислить время, непойму.

Надеюсь на вашу помощь. Благодарю за внимание.
__________________
Убейте меня!


Последний раз редактировалось джонатан; 14.07.2008 в 14:51.
Старый 14.07.2008, 14:48
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
По событию onLoadStart запоминаете значение getTimer ()
По событию onLoadComplete вычитаете из текущего getTimer () то, что запомнили и делите разницу на 1000, тем самым получая время загрузки в секундах.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 14.07.2008, 14:57
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 3  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
iNils > Ну это чтобы увидеть скорость загрузки, по завершению всей загрузки, а если мне нужно видеть скорость непосредственно в процессе загрузки?

Я сделал пустой клип, в котором колличество кадров равно колличесву fps, создал переменную timer равную 0 и в этом клипе на последнем кадре написал
Код:
timer++;
Сейчас заливаю в сеть, чтобы проверить, а-то когда локально, то выводит "Infinity kb/s"
Но как-то это не красиво... Да и темболее погрешность имеет место в fps...

О! Точно! Праильнее наверное сначала задать переменной не 0 а -1, и на первом кадре писать
Код:
timer++;
Так будет правильнее, но всеравно это как-то через "пятую точку".
__________________
Убейте меня!

Старый 14.07.2008, 15:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Причем тут фпс?
Есть событие onLoadProgress, которое вызывается каждый раз, когда записывает новая часть данных. Запоминайте предыдущее значение загруженных байт и getTimer (), а потом делите разницу.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 14.07.2008, 15:12
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 5  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
iNils > Причем тут фпс?
как причем? Если фпс стоит 31, значит, что частота смены гадров = 31 в секунду.
И если в клипе 31 кадр, соттветственно он проигрывается полностью за 1 секнду. А с последнего кадра переходит на первый и к значению переменной timer прибавляется единичка, один раз в секунду. Ведь правильно?
Но как я уже и говорил, этот способ не красивый. Поэтому я благодарю вас за разъяснение, пойду делать. Спасибо.

// update

Что-то у меня ничего не получается! Я так подозреваю, что все потому, что я гружу не клип, и не картинку, а FLV видео:

Код:
// Create a NetConnection object
var netConn:NetConnection = new NetConnection();
// Create a local streaming connection
netConn.connect(null);
// Create a NetStream object and define an onStatus() function
var netStream:NetStream = new NetStream(netConn);
netStream.onStatus = function(infoObject) {
	for (var prop in infoObject) {
		if (infoObject[prop] == "NetStream.Buffer.Empty") {
			_root.player.btns.time_field.msgTxt.text = "Идет загрузка...";			
			ones3 = false;
		}
		
		if (infoObject[prop] == "NetStream.Buffer.Full") {
			_root.player.btns.time_field.msgTxt.text = "";
		}
		if(infoObject[prop] == "NetStream.Play.Stop"){
			demor();
		}
		if (infoObject[prop] == "NetStream.Play.StreamNotFound") {
			msg_txt.text = "File not found...";
		}
	}
};
netStream.onMetaData = function(infoObject:Object) {
	
	for (var propName in infoObject) {
		if (propName == "lasttimestamp" or propName == "duration") {
			meta = true;
			vLength = infoObject[propName];
			kv = vLength/(_root.TimeLinelen);
			delete netStream.onMetaData;
		}
		if (propName == "duration") {
			_root.iAllTime = infoObject[propName];
			usePath_mc.btnPlace.timeLine.timeTxt.text = usePath_mc.attached_as.fSetTime(_root.iAllTime);
		}
		if (propName == "width") {
		}
		if (propName == "height") {
		}
	}
};
// Attach the NetStream video feed to the Video object
usePath_mc.video_mc.my_video.attachVideo(netStream);
// Set the buffer time
netStream.setBufferTime(5);
// Begin playing the FLV file
netStream.play(_root.video_file);
netStream.seek(0);
netStream.pause();
__________________
Убейте меня!


Последний раз редактировалось джонатан; 14.07.2008 в 18:37.
Старый 16.11.2010, 20:37
Psy486 вне форума Посмотреть профиль Отправить личное сообщение для Psy486 Найти все сообщения от Psy486
  № 6  
Ответить с цитированием
Psy486

Регистрация: Mar 2009
Сообщений: 11
По умолчанию В эту тему другим путем

Добродень!

У меня для Вас до одури простой вопрос, но мне как не программеру он не так и прост, а времени на изучение базы сейчас нет, ибо проекту завтра быть.

Есть у меня текст вида 0,001
Надо чтоб каждые пол секунды (или там каждые несколько кадров, не важно) он прибавлялся на 0,001.
Как это сделать? Я пробовал гуглить, но у всех глобальные планы, из которых у еня не знаючи АС не удается вычленить кусочек, который дал бы мне именно этот результат =(

Старый 17.11.2010, 11:54
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 7  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
вот так
Код AS1/AS2:
var num:Number = 0.001;
function sum(dt:Number){
	num +=dt
	ваше_текстовое_поле.text = num;
}
var id:Number = setInterval(sum,500,0.001)

Старый 17.11.2010, 12:28
Psy486 вне форума Посмотреть профиль Отправить личное сообщение для Psy486 Найти все сообщения от Psy486
  № 8  
Ответить с цитированием
Psy486

Регистрация: Mar 2009
Сообщений: 11
lexa2000lexa, чистосердечное, необъятных размеров спасибище!

Добавлено через 1 час 2 минуты
Цитата:
Сообщение от lexa2000lexa Посмотреть сообщение
вот так
Код AS1/AS2:
var num:Number = 0.001;
function sum(dt:Number){
	num +=dt
	ваше_текстовое_поле.text = num;
}
var id:Number = setInterval(sum,500,0.001)

А как сделать так, чтоб в конце был 0?
Он тут когда прибавляет, то получается 0,009 а потом 0,01. Хотелось бы чтоб после запятой было 3 знака всегда .

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

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

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


 


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


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