|
|
|||||
Регистрация: 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, время: 17:50. |
|
« Предыдущая тема | Следующая тема » |
|
|