On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

AttachSound - из подгруженного *.swf

Уильям Брэдберри

Эта статья родилась случайно, в связи с возникшей перепалкой на форуме.
Но!
Меня утешает тот факт, что совершенно внезапно я, вдруг понял, что
в раз решил одну из любопытнейших проблем флэш-программирования.
И так
Вашему вниманию:

ПРИСОЕДИНЕНИЕ
ЗВУКА СКРИПТОМ ИЗ ПОДГРУЖЕННОГО ВНЕШНЕГО ФАЙЛА.
(с которым теперь можно делать, что угодно)

Тут описан способ загрузки в основной флэш-ролик другого файла (*.swf) в который, в свою очередь включен только звук.

Начнем, как обычно с создания НОВОГО документа

1. Откроем редактор flash5
2. сохраним новый файл с названием "dolphin.fla"
3. нажимаем CNTRL+R, откроется окошко импорта



4. выбираем звук (в примере *.mp3), импортируем.
5. открываем библиотеку символов (CNTRL+L)
6. делаем правый клик на нашем звуке, выбираем linkage



7. откроется окошко "SYMBOL LINKAGE PROPERIES"
8. ставим напротив [ export this symbol ] точечку и напротив [ identifier ] вписываем love.

OK.



на этом все. делаем публикацию (SHIFT+F12 ) и закрываем файл

9. создадим новый файл
10. сохраним новый файл с названием "loadDolphin.fla"
11. выделим первый кадр в сцене и по правой кнопке в контекстном меню выберем actions
12. в окошке "frame actions" впишем такой код:

loadMovie("dolphin.swf",1)
// ЭТОТ КОД ЗАГРУЗИТ ФАЙЛ "dolphin.swf" В УРОВЕНЬ ?1 ( _level1 )



далее, чтобы воспользоваться нашим звуком из этого файла
необходимо проверить, загрузился ли он полностью.
для этого мы пропустим один кадр, выделим кадр ?3 в сцене и вставим пустой ключевой кадр

(F7) для написания будущего кода

13. выделим 3 кадр и в окне "frame actions" напишем код:

if(_level1.getBytesLoaded()==_level1.getBytesTotal())
{
Soun = new Sound(_level1)
Soun.attachSound("love")
Soun.start(0,999);
stop ();
}else{gotoAndPlay(_currentframe-1)}



//===================================================
пояснения:
if - условие (если).....

-----------
_level1.getBytesLoaded() ....равно..... _level1.getBytesTotal() ....то....

_level1.getBytesLoaded() - функция, показывающая (возвращающая) нам значение в байтах от

загруженного. В данном примере обратите
(внимание!)

стоит _level1

- значит просчитыватся будет

именно он.

_level1.getBytesTotal() - функция, определяющая полный размер указанного объекта (левела) в

байтах.
--------

else - иначе пока (если условие if) не выполнено, то есть
[_level1.getBytesLoaded() не равно _level1.getBytesTotal()]
то
{gotoAndPlay(_currentframe-1)} - вернуться на предыдущий кадр и проиграть заново

--------------------
примечание: используйте _currentframe-1 вместо прямого указания номера, если в

последствии Вам вздумается перенести код в другие кадры.
--------------------
и так: --- Если (if) загруженные байты (getBytesLoaded() )равны тотальному их количеству ( getBytesTotal() ) ---
...то выполнить скрипт......
--------
далее, собсно сам скрипт
--------------------
Soun = new Sound(_level1) - создаем новый звуковой объект в _level1
Soun.attachSound("love") - обращаемся к лежащему в _level1 звуку по имени !в кавычках!
Soun.start(0,999); - запускаем звук и проигрываем его 999 раз :)
stop (); - останавливаем проигрывание сцены
--------------------


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



Литература по FLASH