![]() |
|
||||||||||
|
|
|
|||||
|
Хочу спидометр который бы показывал скорость загрузки. Соответственно мне надо:
BytesLoaded / время за которое это загружено либо BytesTotal / общее время загрузки. А вот как мне вычислить время, непойму. Надеюсь на вашу помощь. Благодарю за внимание. ![]()
__________________
Убейте меня! Последний раз редактировалось джонатан; 14.07.2008 в 14:51. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
По событию onLoadStart запоминаете значение getTimer ()
По событию onLoadComplete вычитаете из текущего getTimer () то, что запомнили и делите разницу на 1000, тем самым получая время загрузки в секундах. |
|
|||||
|
iNils > Ну это чтобы увидеть скорость загрузки, по завершению всей загрузки, а если мне нужно видеть скорость непосредственно в процессе загрузки?
Я сделал пустой клип, в котором колличество кадров равно колличесву fps, создал переменную timer равную 0 и в этом клипе на последнем кадре написал Сейчас заливаю в сеть, чтобы проверить, а-то когда локально, то выводит "Infinity kb/s" Но как-то это не красиво... Да и темболее погрешность имеет место в fps... О! Точно! Праильнее наверное сначала задать переменной не 0 а -1, и на первом кадре писать Так будет правильнее, но всеравно это как-то через "пятую точку".
__________________
Убейте меня! |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Причем тут фпс?
Есть событие onLoadProgress, которое вызывается каждый раз, когда записывает новая часть данных. Запоминайте предыдущее значение загруженных байт и getTimer (), а потом делите разницу. |
|
|||||
|
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. |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 11
|
Добродень!
У меня для Вас до одури простой вопрос, но мне как не программеру он не так и прост, а времени на изучение базы сейчас нет, ибо проекту завтра быть. Есть у меня текст вида 0,001 Надо чтоб каждые пол секунды (или там каждые несколько кадров, не важно) он прибавлялся на 0,001. Как это сделать? Я пробовал гуглить, но у всех глобальные планы, из которых у еня не знаючи АС не удается вычленить кусочек, который дал бы мне именно этот результат =( |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 950
|
вот так
|
|
|||||
|
Регистрация: Mar 2009
Сообщений: 11
|
lexa2000lexa, чистосердечное, необъятных размеров спасибище!
Добавлено через 1 час 2 минуты Цитата:
А как сделать так, чтоб в конце был 0? Он тут когда прибавляет, то получается 0,009 а потом 0,01. Хотелось бы чтоб после запятой было 3 знака всегда . |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|