ActionScript / AIR - лимит в одну кнопку (эксклюзивное касание) для мобильных устройств? - PullRequest
0 голосов
/ 09 января 2011

Два года назад, когда я разрабатывал приложение для iPhone, я использовал следующий встроенный системный метод для всех своих кнопок:

[button setExclusiveTouch:YES];

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

проблематично : ButtonA и ButtonB доступны.Каждая кнопка имеет событие мыши, которое запускает определенную анимированную (анимационную) реорганизацию / макет пользовательского интерфейса.Если события обеих кнопок запускаются одновременно, их события, вероятно, будут конфликтовать, вызывая странный новый макет, возможно, ошибку времени выполнения.

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

private function mouseDownEventHandler(evt:MouseEvent):void
{
    //if other buttons are currently in a mouse down state ready to fire
    //a mouse up event, cancel them all here.
}

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

Есть ли в AIR удобный метод специально для этой функции?

1 Ответ

1 голос
/ 10 января 2011

Я не знаю об этом.

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

В псевдокоде:

class MyButton
{
   private static var pressed : Boolean = false;

   function mouseDown(evt : MouseEvent)
   {
      if(!pressed)
      {
         pressed = true;
         // Do your thing
      }
   }
}

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

HTH,

J

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