2010-05-27 3 views
0

Je me demande s'il y a un moyen de configurer un bouton FLEX de sorte qu'il se comporte comme un bouton-poussoir ...Bouton FLEX pour déclencher l'événement en continu lorsqu'il est pressé ... pas une seule fois!

+1

Clarification s'il vous plaît: Voulez-vous quelque chose qui se déclenche continuellement alors que la souris est sur le bouton OU voulez-vous quelque chose qui se déclenchera continuellement après que le bouton est cliqué et n'arrêtez jamais de tirer? – invertedSpear

+0

Je le ressens, il demande à la dernière partie où l'événement est déclenché en permanence après que le bouton est cliqué. – Thalaivar

Répondre

2
<mx:Button buttonDown="trace('ankur')" autoRepeat="true"/> 

pour faire un bouton flex pour recevoir l'événement contiuous passe, utilisez la propriété autoRepeat avec l'événement buttonDown, notez la propriété de clic ne fonctionnera,

mettre cette balise dans ur l'application, l'exécuter,

je l'espère, c'est WHT u étaient Luking pour

Thanx

Ankur Sharma

+0

Solution parfaite! –

2

Si vous avez juste besoin de basculer (ce qui est la façon dont un bouton-poussoir se comporte), définissez sa propriété à bascule vrai.

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

Si ce n'est pas ce que vous voulez dire, soyez plus précis dans votre question.

EDIT: Puisque vous avez affiné votre question, je vous suggère de créer un gestionnaire pour l'événement mouseDown du bouton, qui démarre une méthode en cours d'exécution et crée un gestionnaire mouseUp qui arrête la méthode. Ou mieux encore, faites-le définir ou désactiver une variable, qui est testée dans la méthode updateDisplayList(). Comme si:

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; 
} 

et le bouton ressemble à ceci:

<mx:Button text="Run Something" mouseDown="buttonIsDown()" mouseUp="buttonIsUp()"/> 
+0

Ce dont j'ai besoin est le bouton pour se comporter comme un bouton poussoir ... Je veux dire ... quand vous appuyez sur le bouton ... il doit déclencher en permanence un événement push ou quelque chose comme ça ... :) –

+0

@ user352353: OK, édité pour montrer comment faire cela. Il est important d'utiliser updateDisplayList de cette manière pour que les choses qui changent semblent changer. – Robusto

+0

Je pense que cela ne fonctionnera que lorsque la souris sur le bouton est UP. Je pense soit que j'ai raté la question OP ou soit il n'était pas clair ... assez bon moyen et belle riposte Robusto – Thalaivar

0
<mx:Button label="Button Test" toggle="true" click="yourMethodName()"/> 

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

Maintenant, quand vous écoutez à nouveau cet événement, appelez le même nom de la méthode à nouveau par addEventListner. Il continuera à tirer le même événement pour toujours.

J'ai une question, sur quel scénario vous souhaitez appliquer cela. Vous pouvez passer par EventDispatcher ou un code ActionScript qui continuera à déclencher le même nom de méthode jusqu'à ce que l'équation soit résolue.

En fonction de vos besoins, vous pouvez y aller. Je suggère un événement, car il serait plus facile à gérer.

Questions connexes