AS3 Как сделать кнопку для переключения функции? - PullRequest
0 голосов
/ 30 августа 2011

При нажатии кнопки 1 курсор превращается в «мувиклип» Я хочу, чтобы курсор мувиклипа снова переключился в обычный курсор при повторном нажатии кнопки 1, так что включайте и выключайте функцию.

Мой вопрос к вам: возможно ли использовать здесь какое-либо логическое значение для включения и выключения функции или я не в том направлении? Заранее спасибо!

button1.addEventListener(MouseEvent.CLICK,wipe);

function wipe(e:Event):void 
{

        Mouse.hide();
        stage.addEventListener(MouseEvent.MOUSE_MOVE,follow);
        function follow(evt:MouseEvent)
              {
              cursor.x = mouseX;
              cursor.y = mouseY;
              }
}

Ответы [ 2 ]

0 голосов
/ 22 сентября 2014
var isMC:Boolean=false;


button1.addEventListener(MouseEvent.CLICK,wipe);
cursor.visible=false;
function wipe(e:Event):void 
{
if(isMC==false){
    cursor.visible=true;
    Mouse.hide();
    stage.addEventListener(MouseEvent.MOUSE_MOVE,follow);
    function follow(evt:MouseEvent)
          {
          cursor.x = mouseX;
          cursor.y = mouseY;

          }
          isMC=true;}else{Mouse.show();
          cursor.visible=false;
          isMC=false

}}   

Надеюсь, это поможет.

0 голосов
/ 31 августа 2011

Попробуйте

protected function wipe(e:Event):void {
    if (stage.hasEventListener(MouseEvent.MOUSE_MOVE, follow) {
        stage.removeEventListener(MouseEvent.MOUSE_MOVE, follow);
    } else {
        stage.addEventListener(MouseEvent.MOUSE_MOVE, follow);
    }
}

Я бы убрал определение следования из стирания.Это даже работает?

Если вам нужно, чтобы другие слушатели для MOUSE_MOVE были прямо на сцене, вы можете захотеть пойти с чем-то более похожим на:

protected var isFollowing:Boolean;
protected function wipe(e:Event):void {
    if (isFollowing) {
       stage.removeEventListener(MouseEvent.MOUSE_MOVE, follow);
   } else {
        stage.addEventListener(MouseEvent.MOUSE_MOVE, follow);
   }
   isFollowing = !isFollowing;
}

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

...