Actionscript 3 мыши вниз - PullRequest
       2

Actionscript 3 мыши вниз

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

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

Я пытался mk_mc.addEventListener(MouseEvent.MOUSE_DOWN,fct), но она только вызывает функцию и затем останавливаетсяделать это постоянно, как я могу это сделать?

Ответы [ 3 ]

7 голосов
/ 19 августа 2011

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

Некоторый разумный код для обработки событий перетаскивания в AS3:

stage.addEventListener( MouseEvent.MOUSE_DOWN, beginDrag );

function beginDrag( e:MouseEvent )
{
  stage.addEventListener( MouseEvent.MOUSE_MOVE, drag );
  stage.addEventListener( MouseEvent.MOUSE_UP, endDrag );
  stage.addEventListener( MouseEvent.DEACTIVATE, endDrag );
  stage.addEventListener( Event.MOUSE_LEAVE, endDrag );
  stage.addEventListener( Event.REMOVED_FROM_STAGE, stageEndDrag );

  //trigger beginDrag event
}
function drag( e:MouseEvent )
{
  //trigger drag event
}
function endDrag( e:Event )
{
  stage.removeEventListener( MouseEvent.MOUSE_MOVE, drag );
  stage.removeEventListener( MouseEvent.MOUSE_UP, endDrag );
  stage.removeEventListener( MouseEvent.DEACTIVATE, endDrag );
  stage.removeEventListener( Event.MOUSE_LEAVE, endDrag );
  stage.removeEventListener( Event.REMOVED_FROM_STAGE, stageEndDrag );

  //trigger endDrag event
}
4 голосов
/ 19 августа 2011

Итак, что вы хотите сделать, это вызвать функцию, когда мышь перемещается, а кнопка нажата?

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

var isDown:Boolean = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);

function onMouseDown(evt:MouseEvent):void
{
    isDown = true;
}

function onMouseUp(evt:MouseEvent):void
{
    isDown = false;
}

function onMouseMove(evt:MouseEvent):void
{
    if(isDown) {
        //party
    }
}
1 голос
/ 19 августа 2011

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

private var down_:Boolean = false;

mk_mc.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);

function onMouseDown(event) {
    down_ = true;   
    mk_mc.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
}

function onMouseUp(event) {
    down_ = false;  
    mk_mc.removeEventListener(MouseEvent.MOUSE_UP,onMouseUp);
}

Затем просто опросите down_, чтобы узнать, нажата ли мышь или нет.

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