Дизайн студія EVIANT Flash - Передзавантаження та метод attachSoundMacromedia Flash 5 - все про Macromedia
З багатьох причин є сенс розміщувати звук всередині окремого файлу SWF і завантажувати його в першому кадрі основного кліпу. Однією з причин є створення зацикленого музичного фону, що відтворюється незалежно від подій, що відбуваються в основному кліпі.
Отже, створіть новий кліп, у перший кадр якого помістіть наступний скрипт:
Цей скрипт є функцією, яку можна викликати з будь-якого місця кліпу, у будь-який час і яка почне відтворювати звук, вказаний як "idname". Для створення цього ідентифікатора, виділіть потрібний звук у бібліотеці, правим клацанням відкрийте контекстне меню та виберіть опцію "Linkage.". У вікні діалогу увімкніть опцію "export this symbol" і вкажіть idname як ідентифікатор. Ця функція активізується за командою:
Тепер створений кліп може містити весь звук для Flash-кліпу. Створіть стільки таких функцій, як вам потрібно. Фактично, можна використовувати одну функцію для підключення безлічі звуків, просто передаючи їй потрібні ідентифікатори як параметр, як робиться в наступному скрипті:
Для активізації функції використовується команда, яка містить параметр ідентифікатор залінкованого звуку, який слід відтворити:
Збережіть створений вами кліп під ім'ям "sound.fla" та експортуйте його до SWF-файлу "sound.swf" (File -> Export Movie)
Тепер займемося прелоадером. Всередині основного Flash-кліпу створіть новий мувік (movieclip) і помістіть його в кадр на головній лінійці (Timeline), з якого хочете почати завантаження звуку з бібліотеки. Виділіть цей мувік, відкрийте його вікно ActionScript і скопіюйте в нього наступний скрипт:
Коли відтворення кліпу досягне цього мувіка, вінпочне вантажити файл з ім'ям "sound.swf" на перший рівень (_level1) кліпу або будь-який інший рівень, який буде вказано вами. Потім, у покадровому циклі (onСlipEvent(enterFrame)) визначається розмір завантаженої частини у відсотках. Якщо кліп повністю завантажився і функція mysound() не викликалася раніше, відбувається її виклик на основній лінійці першого рівня (_level1), виставляється прапор у вигляді булевої змінної (initialized = true) і мувік стає невидимим.
Тепер, якщо ви хочете показувати всередині цього мувікліпа відсоток його завантаження, створіть текстове поле, відкрийте панель "Text Options", задайте текстовому полю динамічний тип та ім'я "percentdisplay". Якщо ж не хочете відображати процент, видаліть рядок:
Аналогічно можна відображати не відсотки, а кількість завантажених байтів, додаючи відповідний код всередину обробника onClipEvent(enterFrame). Також усередині цього мувікліпа можна створити якусь анімацію, що відтворюється в процесі завантаження файлу sound.swf і яку легко можна припинити, обнуливши _visiblity властивість цього мувіка.
Тепер у вас є можливість підвантажувати звук, як і коли хочете!
Деякі скаржаться, що звук нікуди не підвантажується, крім як на основну лінійку кліпу (_level0). Звуковий об'єкт (new Sound()) має факультативний параметр, що визначає лінійку, на яку він підвантажуватиметься. Ця лінійка може бути мувікліпом, перебувати на іншому рівні або в корені (_root) кліпу:
Якщо не вказувати цей параметр, за промовчанням звуковий об'єкт буде створено в корені кліпу (_level0). Саме тому в скрипті використовується параметр "this", у цьому випадку звуковий об'єкт буде створений на тій лінійці, на якій виконується цей скрипт.