Кнопка AS3 не скрывается

У меня есть кнопка, которую я хочу использовать для отключения звука, которая изменится на значок включения звука при нажатии и будет переключаться вперед и назад.

Дело в том, что он все еще виден на этапе после моего кода. Самым странным является то, что если я отслеживаю видимость после вызова функции, она фактически говорит, что она скрыта: но четко видна на сцене.

play_pause.addEventListener(MouseEvent.CLICK, change_sound);

function change_sound (e:MouseEvent):void{
        fl_NS.soundTransform = muteAudio;
        e.target.visible = false;
        trace(play_pause.visible);
        muted = true;
}

Вот еще несколько вещей, которые я пробовал, но которые не сработали:

play_pause.addEventListener(MouseEvent.CLICK, change_sound);

function change_sound (e:MouseEvent):void{
        fl_NS.soundTransform = muteAudio;
        play_pause.visible = false;
        trace(play_pause.visible);
        muted = true;
}

Другая версия:

play_pause.addEventListener(MouseEvent.CLICK, change_sound);

function change_sound (e:MouseEvent):void{
        fl_NS.soundTransform = muteAudio;
        play_pause.gotoAndPlay(2);
        muted = true;
}

Опять никаких визуальных изменений. Просто сформулирую несколько ключевых моментов:

  • мой видеоклип определенно называется play_pause
  • он отслеживает, что он виден до щелчка и невидим после щелчка (оператор трассировки возвращается ложным), но визуального изменения нет
  • функция определенно срабатывает

Я какое-то время не использовал AS3, я предполагаю, что делаю настоящую ошибку новичка? Полный код: http://pastebin.com/RirGdS1w

Ссылка на файл .fla: http://db.tt/51DD0Fbl


person Djave    schedule 12.06.2013    source источник
comment
попробуйте play_pause.gotoAndPlay (2); в 'play_pause.gotoAndStop (2);' он работает как временная шкала, если вы попросите его воспроизвести, он перейдет к следующему кадру, пока он не остановится.   -  person tailedmouse    schedule 13.06.2013
comment
Спасибо, что нашли время посмотреть   -  person Djave    schedule 13.06.2013


Ответы (2)


Возможно, кто-то другой сможет полностью объяснить это, но я обнаружил, что после того, как SWF-файл был встроен в HTML-страницу, он работал должным образом. Когда он запускался во Flash CS5.5, он не работал. Теперь это будет кошмар для отладки, но для целей проекта сегодня вечером он у меня работает.

person Djave    schedule 12.06.2013

Попробуйте e.currentTarget внутри функции прослушивателя.

target - самый глубокий элемент, например фрагмент ролика внутри другого фрагмента ролика.

currentTarget - это тот, который связан с методом addEventListener

person Harrison    schedule 12.06.2013
comment
Я пробовал e.currentTarget, должен был сказать выше - я начинаю думать, что это ошибка Flash, так как после встраивания в браузер все работало нормально. Благодарность - person Djave; 13.06.2013