2010-03-11 3 views
0

Я пытаюсь создать клип UI, который можно использовать в разных сценах. Он использует переменные из области корня для определения состояний.Flash As3 Mute Проблемы с кнопками

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

Любые идеи?


Главная Хронология:

вар немым: Boolean = ложь; var playerName = "Fred";

функция setMute (vol) { var sTransform: SoundTransform = новый SoundTransform (1,0); sTransform.volume = vol; SoundMixer.soundTransform = sTransform; }

функция toggleMuteBtn (событие: Event) { если (немой) { // Sound On, Off Mute немого = ложь; setMute (1); ui_mc.muteCross_mc.visible = false; } else { // Звук выключен, отключен звук mute = true; setMute (0); ui_mc.muteCross_mc.visible = true; }}


ui_mc Action Script:

если (MovieClip (родитель) .mute == ложной) { muteCross_mc.visible = ложь; }

mute_btn.addEventListener (MouseEvent.CLICK, MovieClip (parent) .toggleMuteBtn);

ответ

0

Я предполагаю, что ваш код находится в первом кадре вашей временной шкалы.

Я не буду углубляться в проблемы, связанные с этой практикой в ​​as3, но вам может быть лучше использовать класс документа. Таким образом, код инициализируется только один раз. Я предполагаю, что когда вы переключаетесь между сценами, вы продолжаете повторную инициализацию, поэтому вы заканчиваете сброс mute на false.

Чтобы проверить, действительно ли это происходит, просто добавьте trace("init") к этому скрипту и посмотрите, как часто вы это называете., Вы также можете добавить трассировку в свою функцию toggleMuteBtn, чтобы узнать, что представляет собой переменная mute, прежде чем вы ее измените.

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

+0

документ класса HOWTO : http://www.youtube.com/watch?v=V01yZnRANLQ – Daniel