Назад в раздел
AttachSound - из подгруженного *.swf
div.main {margin-left: 20pt; margin-right: 20pt}
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 (); - останавливаем проигрывание сцены --------------------
удобство данного метода очевидно - Вы сможете легко заменить, рандомно загрузить или просто использовать в разных роликах любой звук, без вмешательства в код основного Вашего ролика.
Всегда ваш, Уильям Брэдберри. http://totemart.newmail.ru http://wb.legus.ru
wb@solarisicg.com wb@legus.ru willyam@newmail.ru |
Автор: © Уильям Брэдберри Источник:
http://www.flasher.ru
|
|
|
|