![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2012
Сообщений: 57
|
При нажатии на кнопку объект становится видимым, а его анимация запускается, при повторном нажатии на ту же кнопку должно проходить обратное действие. Всё работает только 1 раз, а надо чтобы работало бесконечное количество нажатий.
qw_cont.podsv.addEventListener(MouseEvent.CLICK, oMClick9); function oMClick2(e:MouseEvent):void { qw_cont.kryshka.play(); } function oMClick9(e:MouseEvent):void { qw_cont.plamia.play(); qw_cont.plamia.visible = true; qw_cont.podsv.addEventListener(MouseEvent.CLICK, oMClick10); function oMClick10(e:MouseEvent):void { qw_cont.plamia.stop(); qw_cont.plamia.visible = false; qw_cont.podsv.removeEventListener(MouseEvent.CLICK, oMClick10); } qw_cont.podsv.removeEventListener(MouseEvent.CLICK, oMClick9); } |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Всё просто. Создай событие (нажатие кнопки мыши) и в нём условие: если объект видимый (и включай анимацию), то делай его невидимым (и отключай анимацию).
//Определяю пакет: package src { import flash.display.MovieClip; import flash.events.MouseEvent; //Определяю класс, который расширяет класс MovieClip: public class ChangeVisible extends MovieClip { //Определяю переменную экземпляра с ссылкой на объект MovieClip: var objectMovieClip:MovieClip = myObject; //Определяю конструктор класса: public function ChangeVisible() { //Определяю событие MouseEvent: нажатие кнпоки мыши. myObject.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); } //Определяю метод экземпляра. private function mouseDown(event:MouseEvent):void { //Определяю локальную переменную для выбранного объекта. var lv:MovieClip = event.target; //Если выбранный объект видимый, то: if(lv.visible) { //Выключаю анимацию выбранного объекта: lv.stop(); //Делаю его невидимым: lv.visible = false; } //Если выбранный объект невидимый, то: else { //Делаю его видимым: lv.visible = true; //Включаю анимацию выбранного объекта: lv.play(); } } } } |
|
|||||
|
|
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
чтобы работало бесконечное количество нажатий.
|
|
|||||
|
|
|
|||||
|
Тут надо избавиться от вложенной функции. Вложенные функции - зло.
Фактически, весь этот огород можно заменить вот на это: qw_cont.podsv.addEventListener(MouseEvent.CLICK, onClick); function onClick(e:MouseEvent):void { qw_cont.plamia.visible = !qw_cont.plamia.visible; // меняем видимость при каждом щелчке if (qw_cont.plamia.visible) { qw_cont.plamia.gotoAndPlay(0); } else { qw_cont.plamia.gotoAndStop(0); } } Например это: или это: Понятно и без комментариев. Не нужно писать комментарии, если код сам говорит за себя. Это излишество. Они только мешают восприятию кода. |
|
|||||
|
Надо но их там по видимому уже столько ("oMClick10") что избавляться от них в данном случае нет смысла. Нужно просто закончить то что там делается)
|
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Цитата:
![]() |
|
|||||
|
Цитата:
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:22. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|