Вспышка AS3 видна - PullRequest
       2

Вспышка AS3 видна

3 голосов
/ 06 ноября 2010

У меня есть скрипт, который после нажатия (кнопка) скрывает какую-то другую вещь, а после повторного нажатия она снова отображается. проблема когда-то скрыта, она никогда не показывает снова вот сценарий:

menu_start.addEventListener(MouseEvent.CLICK, myClickFunction);


function myClickFunction(event:MouseEvent) {

      // Hide the first and show the next here
      if (menu_menu.visible == true){
      menu_menu.visible = false;

      } 
      if (menu_menu.visible == false) {
          menu_menu.visible == true;
      }

}

Большое спасибо.

Ответы [ 5 ]

10 голосов
/ 06 ноября 2010

Я предпочитаю написать такую ​​логику в краткой форме:

menu_menu.visible = !menu_menu.visible;
5 голосов
/ 06 ноября 2010

Причина в том, что вы нажимаете на Кнопка, она скрывается, но снова, когда вы нажимаете на ту же кнопку, она делает не показывать назад

Поправь меня, если я ошибаюсь в приведенном выше утверждении.

Теперь попробуйте что-нибудь сказать, у меня есть две кнопки Скрыть и Показать. Создайте две новые функции и опробуйте их. Если это работает, значит, в вашей логике чего-то не хватает, если это не работает, дайте нам знать.

Также попробуйте это.

function myClickFunction(event:MouseEvent) {

      // Hide the first and show the next here
      if (menu_menu.visible){
      menu_menu.visible = false;

      } else {
         menu_menu.visible = true;
      }

}

Другая проблема может заключаться в том, что при нажатии кнопки она может не получить свойство menu_menu снова как скрытое или уничтоженное. Это внутри того же компонента или вызывается откуда-то еще?

3 голосов
/ 06 ноября 2010

Во втором утверждении "если" вы не присваиваете .visible для true, а вместо этого проверяете, равно ли оно истинному из-за двух знаков равенства.

function myClickFunction(event:MouseEvent) {

  // Hide the first and show the next here
  if (menu_menu.visible == true){
  menu_menu.visible = false;

  } 
  if (menu_menu.visible == false) {
      menu_menu.visible = true;
  }

}

1 голос
/ 30 апреля 2015

Вот лучшая версия, основанная на предложении Гленса, которое я сделал, не стесняйтесь использовать.

Buttonname.addEventListener (MouseEvent.CLICK, FunctionName);
function FunctionName(event:MouseEvent) {

  if (name1.alpha == 1){
  name1.alpha = 0;} else {name1.alpha = 1}
}

Что этот сценарий говорит, если name1 (символ мувиклипа) имеет значение Alpha, равное 1при нажатии тогда значение Альфы изменится на 0, в противном случае значение Альфы изменится на 1.

Это также будет работать с «видимыми» функциями:

Buttonname.addEventListener (MouseEvent.CLICK, FunctionName);
function FunctionName(event:MouseEvent) {

  if (name1.visible == true){
  name1.visible = false;} else {name1.visible = true}
}
0 голосов
/ 17 декабря 2013

Попробуйте использовать альфа = 0,1 вместо visible = false и alpha = 1 вместо visible = true.

Проблема в том, что при использовании visible = false он также отключает взаимодействие с мышью, поэтому ваш второй щелчок никогда не срабатывает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...