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

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

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

Регистрация: 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;
	}
  }
}

Старый 06.07.2008, 22:52
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А звук-то начинает сразу играть, или только полоска ресайзится?
Как вариант - звуковой файл тупо закеширован браузером, поэтому действительно моментально загружается. Попробуйте отключить кеширование.
__________________
Reality.getBounds(this);

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Пардон,но когда mp3шка 68 метров,врядли она сразу загружается,я и говорю бар-полоска,сразу на 100%,а звук может только минут через 5 пойти ,тестю на флеше все нормально.

Старый 06.07.2008, 23:40
vikingcompany вне форума Посмотреть профиль Отправить личное сообщение для vikingcompany Найти все сообщения от vikingcompany
  № 4  
Ответить с цитированием
vikingcompany
[+4 25.01.11]
 
Аватар для vikingcompany

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
В смысле "на флеше"? Control -> Test Movie, что ли?
Установи web-сервер да погоняй мувик там.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Я, конечно, новичек в программировании, но вот Вы мне и объясните, что значит эта конструкция?
Код:
if(L>5&&L==T){
Я сильно подозреваю, что имелось в виду (по смыслу происходящего)
Код:
if((L>5)&&(L<T)){
Ваша же конструкция не способна выдать true, поэтому я не понимаю, как срабатывал код с ресайзом полоски))). Возможно Вы ошиблись второпях, вставляя здесь код. Зато ответ на Ваш вопрос очевиден - если L будет меньше 5 в момент опроса, выполнится второй блок условия - т.е. полоска 100% и т.д. А при загрузке с интернета L<5 в первый момент просто гарантирован.
__________________
Reality.getBounds(this);

Старый 07.07.2008, 00:36
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 6  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: 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);
}
Тест на Флеше проходит,а в инете сразу 100%юИ что делать???(Про штаны можно не советовать)


Последний раз редактировалось iNils; 07.07.2008 в 00:54.
Старый 07.07.2008, 00:51
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну scarbo, Вы же ставите условие, не зная, началась ли загрузка и отменяете по else.
В момент опроса ни L ни T вообще может быть неизвестно, и Вы обрываете слежку и рисуете длинную полосу. Не надо else, надо if(L>=T).
__________________
Reality.getBounds(this);

Старый 07.07.2008, 00:53
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 8  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
О,класс Wolsh,работает,только Вы не описались ли случайно
Цитата:
надо if(L>=T)
Может надо L<=T,во всяком случае так работает,а когда тогда EnterFrame отменять?По факту загрузки?


Последний раз редактировалось scarbo; 07.07.2008 в 00:59.
Старый 07.07.2008, 01:09
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 9  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: 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.
Старый 07.07.2008, 01:19
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 10  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
О,здорово!Мда,не путать синтаксис русского языка с actionscript

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

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

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


 


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


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