Почему кнопка остается выбранной? - PullRequest
0 голосов
/ 24 мая 2011

Я делаю простое меню с двумя кнопками.Каждая кнопка представляет собой мувиклип с 3 метками для состояний «none», «selected» и «hover».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 Ответ

1 голос
/ 24 мая 2011

ENTER_FRAME запускается в начале каждого кадра, поэтому smartBtn будет устанавливаться в состояние «выбрано» каждый раз, даже если вы установите его в состояние «нет».

Удалить вызов EnterFrameHandler или добавить тест, напримерэто:

function EnterFrameHandler(event:Event):void {
        if(cinemaBtn.currentFrameLabel != "selected")
            smartBtn.gotoAndStop("selected");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...