Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   И снова здравствуйте: preloader+attachSound (http://www.flasher.ru/forum/showthread.php?t=96527)

Ляксей 31.05.2007 22:29

И снова здравствуйте: preloader+attachSound
 
Тем с таким названием прочитал штук двадцать, а одвед не нашёл, так что не пинать.
Есть основной swf файл - menu.swf - там красота и икебана, десяток классов и сотни строчек кода. Всё работает хорошо.
В library есть звуковой файл snd_mouseover ( экспортирован для ActionScript).
При наведение мышки на элемент меню происходит
Код:

                //Play Sound
                var my_sound:Sound = new Sound();
                my_sound.attachSound("snd_mouseover");
                my_sound.setVolume(50);
                my_sound.start();

Здесь никаких проблем нет.

Сушествует второй swf файл - preloader.swf, который загружает в себя menu.swf. Так вот после этого звуки не работают.
Есть у меня подозрение, что как-то меняется путь к библиотеке после загрузки во внешний preloader. Но функции типа attachMovie работают нормально, то есть вроде бы путь к библиотеке не изменился.
Может в чём-то другом проблема?

this.create 31.05.2007 23:17

Код:

var mc:MovieClip = this.createEmptyMovieClip('mc', this.getNextHighestDepth());
var my_sound:Sound = new Sound(mc);

my_sound.attachSound("sound");
my_sound.setVolume(50);
my_sound.start();

Предположение такое: объект звука создается на руте прелоадера, а запускается из рута загруженного клипа.
Уточняю: вы прописываете для объекта класса Sound target рут прелоадера (самый главный рут фильма). Что делает Sound? Он ищет звук для аттача в библиотеке прелоадера. Попробуйте импортните ваш звук в библиотеку прелоадера - и ваш код заработает.

Ляксей 31.05.2007 23:54

Да, похоже это так и есть. Когда я вставляю в библитеку прелоадера звуки , всё работает хорошо.
А как мне для
my_sound.attachSound("sound");
уточнить из какой библиотеки брать звуки.
_lockroot = true;
не помогает. У меня в коде везде используется ссылка на локальный рут, но как воспользоваться его библиотекой для attachSound что-то не могу понять. Это вообще возможно?

Спасибо, разобрался
Вот так работает :yahoo:
Код:

var my_sound:Sound = new Sound(GLB_data.m_local_root);
где GLB_data.m_local_root - ссылка на рут menu.swf

this.create 01.06.2007 00:15

Цитата:

Сообщение от Ляксей
Спасибо, разобрался
Вот так работает :yahoo:
Код:

var my_sound:Sound = new Sound(GLB_data.m_local_root);
где GLB_data.m_local_root - ссылка на рут menu.swf

Ну если очень хотите локальный рут, то, пожалуйста:
Код:

var my_sound:Sound = new Sound(this);
или ссылку на локальный рут.

Ляксей 01.06.2007 03:17

Дело в том, что this - это у меня вообще в классе, который не унаследован от MovieClip. A m_local_root я ввёл как замену для _root, когда ещё не знал про _lockroot свойство.


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

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