Кнопка FLEX для непрерывного запуска события при нажатии ... не один раз! - PullRequest
0 голосов
/ 28 мая 2010

Мне интересно, есть ли способ настроить кнопку FLEX, чтобы она работала как кнопка ...

Ответы [ 3 ]

2 голосов
/ 28 мая 2010
<mx:Button buttonDown="trace('ankur')" autoRepeat="true"/>

, чтобы сделать гибкую кнопку для получения непрерывного события, используйте свойство autoRepeat с событием buttonDown, обратите внимание, что свойство click не будет работать,

поместите этот тег в ваше приложение, запустите его,

Надеюсь, это то, чего ты жаждал

спасибо

Анкур Шарма

2 голосов
/ 28 мая 2010

Если вам просто нужно, чтобы он переключался (именно так ведет себя кнопка), установите для его свойства переключателя значение true.

<mx:Button label="Button Test" toggle="true"/>

Если вы не это имеете в виду, уточните свой вопрос.

РЕДАКТИРОВАТЬ: Поскольку вы уточнили свой вопрос, я бы посоветовал вам создать обработчик для события mouseDown кнопки, запускающего метод, и создать обработчик mouseUp, который останавливает выполнение метода. Или еще лучше: установите или отмените переменную, которая проверяется в методе updateDisplayList (). Вот так:

private var _runButtonStuff:Boolean = false;


override protected function updateDisplayList(width:Number, height:number) : void {
  super.updateDisplayList(width,height);
  if (_runButtonStuff) {
    doStuff();
  }
}

private function doStuff() : void {
  // do some stuff  
}

private function buttonIsDown() : void {
  _runButtonStuff = true;
}

private function buttonIsUp() : void {
  _runButtonStuff = false;
}

и кнопка выглядит так:

<mx:Button text="Run Something" mouseDown="buttonIsDown()" mouseUp="buttonIsUp()"/>
0 голосов
/ 28 мая 2010
<mx:Button label="Button Test" toggle="true" click="yourMethodName()"/>

public function yourMethodName():void {
    var evt:someEventName = new someEventName(someEventName.TYPE);
    dispatchEvent(evt);        
}

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

У меня вопрос, по какому сценарию вы хотите это применить. Вы можете использовать EventDispatcher или некоторый код ActionScript, который будет запускать одно и то же имя метода до тех пор, пока уравнение не будет решено.

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

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