![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Здравствуйте,у меня возникли проблемы с прелоадером для звука,при тестировании в Флеше все нормально(бар-полоска,посепенно движется,по мере загрузки файла),но в интернете бар-полоска,мгновенно становиться 100%??почему?
Проверял на медленном интернете,все равно.Вот код: ramka_mc.bar_mc._xscale = 0;
var MySound:Sound = new Sound();
play_mc.onRelease = function(){
MySound.loadSound("http://classic.chubrik.ru/mp3/Rachmaninov/Rach-3_Volodos_1p.mp3", true);
onEnterFrame = function(){
var L = MySound.getBytesLoaded();
var T = MySound.getBytesTotal();
if(L>5&&L==T){
var Bar = Math.round(L/T*100);
ramka_mc.bar_mc._xscale = Bar;
trace(Bar+"%");
}else{
delete T;
delete onEnterFrame;
ramka_mc.bar_mc._xscale = 100;
}
}
}
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А звук-то начинает сразу играть, или только полоска ресайзится?
Как вариант - звуковой файл тупо закеширован браузером, поэтому действительно моментально загружается. Попробуйте отключить кеширование.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Пардон,но когда mp3шка 68 метров,врядли она сразу загружается,я и говорю бар-полоска,сразу на 100%,а звук может только минут через 5 пойти ,тестю на флеше все нормально.
|
|
|||||
|
Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
|
В смысле "на флеше"? Control -> Test Movie, что ли?
Установи web-сервер да погоняй мувик там. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Я, конечно, новичек в программировании, но вот Вы мне и объясните, что значит эта конструкция?
Я сильно подозреваю, что имелось в виду (по смыслу происходящего)
Ваша же конструкция не способна выдать true, поэтому я не понимаю, как срабатывал код с ресайзом полоски))). Возможно Вы ошиблись второпях, вставляя здесь код. Зато ответ на Ваш вопрос очевиден - если L будет меньше 5 в момент опроса, выполнится второй блок условия - т.е. полоска 100% и т.д. А при загрузке с интернета L<5 в первый момент просто гарантирован.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Ой,блин,что я за лажу-то написал,код такой:
import mx.transitions.Tween;
import mx.transitions.easing.*;
stop_mc._visible = false;
ramka_mc._visible = false;
ramka_mc._xscale = 20;
ramka_mc.bar_mc._xscale = 0;
var MySound:Sound = new Sound();
play_mc.onRollOver = function(){
play_mc.gotoAndPlay("navel");
}
play_mc.onRelease = function(){
stop_mc._visible = true;
play_mc._visible = false;
ramka_mc._visible = true;
ramka_mc.varT.stop();
ramka_mc.varT = new Tween(ramka_mc, "_xscale", Regular.easeIn, ramka_mc._xscale, 100, 0.8, true);
MySound.loadSound("извлеченка.mp3", true);
onEnterFrame = function(){
var L = MySound.getBytesLoaded()/1024;
var T = MySound.getBytesTotal()/1024;
if(L<T){
var Bar = Math.round(L/T*100);
ramka_mc.bar_mc._xscale = Bar;
trace(Bar+"%");
}else{
delete T;
delete onEnterFrame;
ramka_mc.bar_mc._xscale = 100;
}
}
}
play_mc.onRollOut = play_mc.onReleaseOutside = function(){
play_mc.gotoAndPlay("norma");
}
stop_mc.onRelease = function(){
stopAllSounds();
stop_mc._visible = false;
play_mc._visible = true;
ramka_mc.varT.stop();
ramka_mc.varT = new Tween(ramka_mc, "_xscale", Regular.easeIn, ramka_mc._xscale, 20, 0.8, true);
ramka_mc.varT.onMotionFinished = function(){
ramka_mc._visible = false;
}
}
ramka_mc.bar_mc._xscale = 0;
Sound.prototype.checkLoadProgress = function(){
var KL = Math.floor(this.getBytesLoaded()/1024);
var KT = Math.floor(this.getBytesTotal()/1024);
var P = isNan(Math.floor(KL/KT*100))?
0:Math.floor(KL/KT*100);
this.onBytesLoaded(this.getBytesLoaded(), this.getBytesTotal(), KL, KT, P);
if(this.getBytesLoaded()>5
&&this.getBytesLoaded==this.getBytesTotal()){
this.clearLoadCheck();
}
}
Sound.prototype.clearLoadCheck = function(){
if(this.loaderID){
clearInterval(this.loaderID)
}
}
Sound.prototype.pr = function(url, tr){
this.clearLoadCheck();
this.loadSound(url, tr);
this.loaderID = setInterval(this, "checkLoadProgress", 200);
}
mySound = new Sound();
musik.onLoad = function(success){
if(success){
trace("Вперед!!!");
this.start();
}else{
trace("Облом,бля");
this.clearLoadCheck();
}
}
mySound.onBytesLoaded = function(bytesLoaded, bytesTotal, KL, KT, P){
trace(P+"%");
ramka_mc.bar_mc._xscale = P;
}
play_mc.onRelease = function(){
mySound.pr("http://shalovnikov.by.ru/%c2%e5%f0%e4%e8%20%20%d1%f6%e5%ed%e0%20%e8%20%f0%e0%f1%f1%ea%e0%e7%20%c0%e7%f3%f7%e5%ed%fb.mp3", true);
}
Последний раз редактировалось iNils; 07.07.2008 в 00:54. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну scarbo, Вы же ставите условие, не зная, началась ли загрузка и отменяете по else.
В момент опроса ни L ни T вообще может быть неизвестно, и Вы обрываете слежку и рисуете длинную полосу. Не надо else, надо if(L>=T).
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
О,класс Wolsh,работает,только Вы не описались ли случайно
Цитата:
Последний раз редактировалось scarbo; 07.07.2008 в 00:59. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Хм, нет, я не описился. Я то имел в виду что это условие второго блока, т.е. при его выполнении закрываем лавочку. Вообще я бы блоки местами поменял - если L>=T - закончили слежку, else - следим, ресайзим и т.д.
Поймите, что поставить условие L>=T это совсем не то же самое, что else от L<T. Это совершенно разные вещи. else сработает, если условие L<T не выполнится. А оно может не выполниться, если L или T еще не известны. Жесткое же условие L>=T означает что загрузка завершилась.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 07.07.2008 в 01:15. |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
О,здорово!Мда,не путать синтаксис русского языка с actionscript
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|