#actionscript-3
#actionscript-3
Вопрос:
Я создаю простое меню из двух кнопок. Каждая кнопка представляет собой видеоклип с 3 метками для состояний «нет», «выбрано» и «наведено». Для smartBtn необходимо установить значение «выбрано» при вводе фрейма. При нажатии на cinemaBtn smartBtn должен перейти в состояние «нет». Но я не уверен, почему smartBtn продолжает выбираться.
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
var smartBtn = menu_mc.smart_mc;
var cinemaBtn = menu_mc.cinema_mc;
smartBtn.buttonMode = true;
cinemaBtn.buttonMode = true;
this.addEventListener(Event.ENTER_FRAME, EnterFrameHandler);
smartBtn.addEventListener(MouseEvent.CLICK, menuSmartClick);
cinemaBtn.addEventListener(MouseEvent.CLICK, menuCinemaClick);
function EnterFrameHandler(event:Event):void {
smartBtn.gotoAndStop("selected");
}
function menuSmartClick(e:MouseEvent) {
smartBtn.gotoAndStop("selected");
smartBtn.buttonMode = false;
cinemaBtn.gotoAndStop("none");
cinemaBtn.buttonMode = true;
}
function menuCinemaClick(e:MouseEvent) {
cinemaBtn.gotoAndStop("selected");
cinemaBtn.buttonMode = false;
smartBtn.gotoAndStop("none");
smartBtn.buttonMode = true;
}
Ответ №1:
ENTER_FRAME запускается в начале каждого кадра, поэтому smartBtn будет устанавливаться в состояние «выбрано» каждый раз, даже если вы установите для него состояние «нет».
Удалите вызов EnterFrameHandler или добавьте тест, подобный этому :
function EnterFrameHandler(event:Event):void {
if(cinemaBtn.currentFrameLabel != "selected")
smartBtn.gotoAndStop("selected");
}