FLEX按钮在按下时连续触发事件......不是一次!

时间:2010-05-27 20:38:00

标签: flex flex3 button

我想知道是否有办法配置FLEX按钮,因此它的行为就像一个按钮......

3 个答案:

答案 0 :(得分:2)

如果您只是需要它来切换(这是按钮的行为方式),请将其切换属性设置为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()"/>

答案 1 :(得分:2)

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

要使flex按钮接收连续事件,请使用带有buttonDown事件的autoRepeat属性,注意click属性将无效,

将此标记放在您的应用程序中,运行它,

我希望,这就是你想要的

thanx

Ankur Sharma

答案 2 :(得分:0)

<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代码继续触发相同的方法名称,直到方程式解决。

根据您的要求,您可以去。我建议事件驱动,因为它更容易管理。