PDA

Просмотр полной версии : Подгрузка музыки


avl
18.11.2002, 15:06
Привет.

Проблема такая:

когда обращаюсь к mp3 файлу с помощью loadsound файл грузится полностью, и только потом отображается фрейм. А хотелось бы наоборот. Сначала все показалось - а потом уже началась загрузка.

Загрузка прописана в отдельном MovieClip (player называется). Так же в нем присутвует расчет процесса загрузки - тоже не пашет :) А код расчета правильный.

Горю. Спасите кто может. Если надо - могу выслать fla, чтобы исправили все мои каракули :)

Baltika
18.11.2002, 15:20
... а нахрена высчитывать загрузку, если ты ее окончание все равно ждать не собираешься ? %))

поясни ....

avl
18.11.2002, 15:24
http://defected.co.uk/ - глянь туда.

Там сначала загрузилась вся swf, так что можно уже смотреть и читать. А в этот момент (в верхнем правом углу) идет загрузка музыки.

Так же надо мне сделать.

lexass
18.11.2002, 15:24
а нахрена высчитывать загрузку, если ты ее окончание все равно ждать не собираешься ?

пояснЯЮ:
Так же в нем присутвует расчет процесса загрузки - тоже не пашет А код расчета правильный.
вот за ентим наверное :/

ЗЫ
тоже не пашет А код расчета правильный.

правильное должно пахать :p :cool: ;)

ЗЗЫ
а об чем собсно речЬ???

lexass
18.11.2002, 15:26
Там сначала загрузилась вся swf, так что можно уже смотреть и читать. А в этот момент (в верхнем правом углу) идет загрузка музыки.
2avl
дык и в чем проблема, грузи свою музЫку потом, после... ;)

Baltika
18.11.2002, 15:29
lexass прав...
когда чего грузить - решать тебе :cool:

avl
18.11.2002, 15:41
Оригинал написал(а) lexass

2avl
дык и в чем проблема, грузи свою музЫку потом, после... ;)

Вот как это сделать ?

Выкладываю исходник (убраны картикни для уменьшения размера, так что не пугайтесь :). По моим понятиям музыка и должна грузиться позже. Гляньте.

Кстати, если кто оптимизирует код - отблагодарю :)

Можете свои идейки дополнить ... :)

lexass
18.11.2002, 15:55
исходник смотреть небуду :p

если флешка загружена
то грузим музыку...

avl
18.11.2002, 16:15
Оригинал написал(а) lexass
исходник смотреть небуду :p

если флешка загружена
то грузим музыку...

Ok. Объясни мне как сначала затормозить загрузку. А уж как запустить я разберусь.

Проблема именно в том, что swf не показывается, пока загрузка музыки не прошла.

Baltika
18.11.2002, 16:21
ну, так и есть :mad:
мувик player, в котором и прописана загрузка валяется в основном таймлайне (со 2-го кадра)..
удлини его на один кадр и в первом напиши stop();
а когда захочешь грузануть саунд, просто перейди в нем к ледующему кадру ..

avl
18.11.2002, 16:30
Оригинал написал(а) Baltika
ну, так и есть :mad:
мувик player, в котором и прописана загрузка валяется в основном таймлайне (со 2-го кадра)..
удлини его на один кадр и в первом напиши stop();
а когда захочешь грузануть саунд, просто перейди в нем к ледующему кадру ..

Удлинил мувик player на один кадр. в первом написал stop();

В основном мувике в перовм жэе кадре последнего слоя написал : _root.player.gotoandplay(2);

И, о чудо, плеер вообще не грузится :)

lexass
18.11.2002, 16:33
Мдя...






у меня кома...

avl
18.11.2002, 16:37
Оригинал написал(а) lexass
Мдя...
у меня кома...

Как ни странно, у меня тоже :)

Давай выйдем из этого затруднительного положения :) Ты только объясни как (конечно сложно ваять супер вещи, пользуясь флешем 6 дней)

Baltika
18.11.2002, 16:38
Оригинал написал(а) avl

В основном мувике в перовм жэе кадре последнего слоя написал : _root.player.gotoAndPlay(2);


а нахрена ?

:rolleyes:

ЗЫ lexass, погодь умирать :)

avl
18.11.2002, 16:41
Оригинал написал(а) Baltika


а нахрена ?

:rolleyes:

ЗЫ lexass, погодь умирать :)

Как нахрена ? сам же скзала : "обращаешся когда захочешь" :)
Вот я и захотел :)

avl
18.11.2002, 16:43
Ладно, хватит смеяться, мне и самому смешно :)

Лучше подъясните поподробней.

lexass
18.11.2002, 16:48
Вылезаю ме-е-едле-е-е-енно-о-о из каматозы... .
что тебе поподробней обЪяснить-то?

ты давай по пунктам,
что те непонятно
как ты это делаешь

а то для меня все прозрачно;)

Baltika
18.11.2002, 16:49
а нахрена в первом же кадре хотеть, когда у тя впереди еще семь кадров грузиться должно ?

%))

кудаэ подробнее ?
теж говорят - дождись загрузки всего ролика, а апосля грузи звук ..

lexass
18.11.2002, 16:51
Baltika, не будем гнать велосипед и байты по сети

пускай нам разяснят ситуЁвину...

avl
18.11.2002, 16:55
Попробовал сделать вызов в последнем кадре (специально создал 8 keyframe. Плеер не подгрузился :)

Baltika
18.11.2002, 17:01
УФФФ.........

что значит специально ?
у тя их и так 8 в основной линейке ..

ты как в player кадр вставлял (F6)?

avl
18.11.2002, 17:03
Оригинал написал(а) Baltika
УФФФ.........

что значит специально ?
у тя их и так 8 в основной линейке ..

ты как в player кадр вставлял (F6)?

Правой кнопкой на TimeLine -> InsertBlankKeyFrame

lexass
18.11.2002, 17:04
# 1-й кадр
music = new Sound();
//music.loadSound("D:/Music/Bonus Track/Divine Divinity/DesFight-1.mp3", false);

# 2-й кадр

tot = music.getBytesTotal();
lod = music.getBytesLoaded();
lineStyle(1, 0xFFA000);
percents = lod*100/tot;
z = 3;
beginfill(0xFFA000);
switch (percents) {
case 100 :
x=151.6, y=-29.8;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 90 :
x=159.6, y=-17.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 80 :
x=171.2, y=-5.7;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 70 :
x=182.1, y=2.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 60 :
x=193.8, y=8.7;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 50 :
x=206.1, y=14.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 40 :
x=217.8, y=17.9;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 30 :
x=229.6, y=21.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 20 :
x=241.8, y=23.4;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 10 :
x=253.3, y=24.7;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
}
music.start(0,100);
stop();

avl
18.11.2002, 17:10
На самом деле все стоит так:
кадр №1:
stop();

кадр№2:
music = new Sound();
music.loadSound("hit/hit.mp3", false);

кадр№3:
tot = music.getBytesTotal();
lod = music.getBytesLoaded();
lineStyle(1, 0xFFA000);
percents = lod*100/tot;
z = 3;
beginfill(0xFFA000);
player.update;
switch (percents) {
case 100 :
x=151.6, y=-29.8;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 90 :
x=159.6, y=-17.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 80 :
x=171.2, y=-5.7;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 70 :
x=182.1, y=2.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 60 :
x=193.8, y=8.7;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 50 :
x=206.1, y=14.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 40 :
x=217.8, y=17.9;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 30 :
x=229.6, y=21.1;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 20 :
x=241.8, y=23.4;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
case 10 :
x=253.3, y=24.7;
moveTo(x, y);
lineTo(x, y+z);
lineTo(x-z, y+z);
lineTo(x-z, y);
lineTo(x, y);
}

music.start(0,100);
stop();

lexass
18.11.2002, 17:24
и как все это работает в кадре№3:
я непонимаю, поподробней ПЛЗ.

avl
18.11.2002, 17:30
Оригинал написал(а) lexass
и как все это работает в кадре№3:
я непонимаю, поподробней ПЛЗ.

Так после выполнения кадра №2 нет стопа. Поэтому происходит переход на третий кадр :)

Только вот забыл if percent=100 поставить перед music.start

Baltika
18.11.2002, 17:34
хе-хе .......... ;)
, а если условие не выполнится, то что тада ?

avl
18.11.2002, 17:35
Оригинал написал(а) Baltika
хе-хе .......... ;)
, а если условие не выполнится, то что тада ?

Тогда снова считаем проценты: gotoandplay(3);

Штука такая:

пишу во втором кадре основного мува:
_root.player.gotoAndPlay(2);

Вызывается мувик player.

Но беда в том, что обращений к этому кадру происходит при нажатии кнопки меню (и каждый раз заново грузится музыка и начинает играть).

Если поставить эту строчку в другой кадр - она перестает работать. Почему - не понимаю.

Пробовал сделать так:
_root.onLoad = function () {
_root.player.gotoAndPlay(2);
}

А это вообще не работает в любом кадре. Почему?

lexass
18.11.2002, 17:45
потому-что и недолжно ;)

ЗЫ
разъяснил ты неподробно, потому как сам непонимаешь что там написано и как ложно работать :p

avl
18.11.2002, 17:46
Оригинал написал(а) lexass
потому-что и недолжно ;)

ЗЫ
разъяснил ты неподробно, потому как сам непонимаешь что там написано и как ложно работать :p

Я сам понимаю, что мало чего понимаю :)

Вот поэтому и задаю вопросы. Ответьте на них, если это посильно.

Baltika
18.11.2002, 17:51
мдя...............

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

...... насчет прелодера, те неплохо бы почитать мануал.... мы с лексасом парни добрые и отзывчивые ;), но объяснять на пальцах уж больно утомительно ...

lexass
18.11.2002, 17:53
Ответьте на них, если это посильно.

Дык, это, уже ответили... .
но ты нифига непоняВ :mad:
Осталось только за тЯ сделать :o
но интересы меркантильные насчет поработать :p ;)

avl
18.11.2002, 17:55
А вы не могли бы подсказать в каком фрейме чего написать надо ? :)

Мануал у меня есть - Flash MX в подлиннеке.

Только там я про прелоадер нифига не видел. Брал один исходник с этого сайта. Он блин пашет тольео на локале ...
А на http не пашет.

lexass
18.11.2002, 17:58
Он блин пашет тольео на локале ...
А на http не пашет.

вранье
он либо пашет либо нет :D

avl
18.11.2002, 18:01
Оригинал написал(а) lexass


вранье
он либо пашет либо нет :D

Это у вас все так, а у меня совсем по другому :D

Baltika
18.11.2002, 18:04
программировать - значит понимать (© не помню кто)..

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

удач

lexass
18.11.2002, 18:12
Оригинал написал(а) Baltika

удач
оно те пригодится ;)

удач