как остановить кнопку, чтобы она стала активной после определенного значения счетчика? - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь сделать кнопку увеличения и уменьшения, но я хочу сделать так, чтобы, если кнопка увеличения достигла максимального значения, она стала недоступной и не давала пользователю взаимодействовать с кнопкой увеличения и наоборот с кнопкой уменьшения.

import flash.events.MouseEvent;

a1.visible=true;
a2.visible=false;
a3.visible=false;
plus.visible=false;
minus.visible=false;
final var clickCounter:Number=0;

e1.addEventListener(MouseEvent.CLICK, decider);

function decider(event:MouseEvent):void{
    plus.visible=true;
    minus.visible=true;

    if (a1.visible==true){
        plus.addEventListener(MouseEvent.CLICK, changer1);
        plus.addEventListener(MouseEvent.CLICK, increaser1);
        minus.addEventListener(MouseEvent.CLICK, changer1);
        minus.addEventListener(MouseEvent.CLICK, decreaser1);
    }
}

function increaser1(event:MouseEvent):void{
    clickCounter++;
    if(clickCounter==3){
        plus.removeEventListener(MouseEvent.CLICK, changer1);
        plus.removeEventListener(MouseEvent.CLICK, increaser1);
        minus.addEventListener(MouseEvent.CLICK, changer1);
        minus.addEventListener(MouseEvent.CLICK, decreaser1);
    }
}

function decreaser1(event:MouseEvent):void{
    clickCounter--;
    if(clickCounter==-1){
        plus.addEventListener(MouseEvent.CLICK, changer1);
        plus.addEventListener(MouseEvent.CLICK, increaser1);
        minus.removeEventListener(MouseEvent.CLICK, changer1);
        minus.removeEventListener(MouseEvent.CLICK, decreaser1);
    }
}

function changer1(event:MouseEvent):void{
     if(clickCounter==0){
          trace("1");
     }
     if(clickCounter==1){
        trace("2");
     }
     if(clickCounter==2){
        trace("3");
     }
}

Этот код выполняет то, что я хочу заархивировать, но когда я нажимаю кнопку увеличения более 3 раз и пытаюсь нажать кнопку уменьшения, потребуется время, чтобы уменьшить ее.

1 Ответ

0 голосов
/ 14 декабря 2018

На самом деле все гораздо проще, чем вы.

var clickCounter:int = 2;

arrangeButtons();

plus.addEventListener(MouseEvent.CLICK, onPlusMinus);
minus.addEventListener(MouseEvent.CLICK, onPlusMinus);

function onPlusMinus(e:MouseEvent):void
{
    // Check for non-mouse interactions.
    if (!e.target.mouseEnabled) return;

    // Change the value based on which botton was clicked.
    clickCounter += ((e.currentTarget == plus)? 1: -1);

    // Adjust buttons to current counter value.
    arrangeButtons();

    // Output the values.
    trace(clickCounter + 1);
}

function arrangeButtons():void
{
    // Enable and disable buttons on margin values.
    minus.mouseEnabled = (clickCounter > 0);
    plus.mouseEnabled = (clickCounter < 2);

    // Display enabled/disabled status.
    minus.alpha = (minus.mouseEnabled? 1: 0.5);
    plus.alpha = (plus.mouseEnabled? 1: 0.5);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...