FLEX 按钮事件处理



我有一个场景,我有 5 个按钮,单击时调用相同的方法。这些按钮在各种条件下被单击,但现在我想知道如何从调用的方法确定单击了哪个特定按钮。

例如,当我点击按钮、泡芙、黛尔牛奶、吉百利、士力架和奇巧时,我一直在调用 chocolate(( 方法。现在,我将从UI中单击这些按钮中的任何一个,我想知道单击了哪个按钮。此事件只能在 chocolate(( 方法中处理。

请建议我如何实现这一点。我正在使用 Adobe Flex 3

如果您没有使用 addEventListeners,而是在按钮中设置 click 属性,则可以执行以下操作:

<s:Button id="snickers"
click="{chocolate('snickers')}"
label="snickers"/>
<s:Button id="kitkat"
click="{chocolate('kitkat')}"
label="kitkat"/>
private function chocolate(type:String):void
{
trace("button", type, "was clicked");
if(type == "snickers")
{
// do stuff
}
else if(type == "kitkat")
{
// do something else
}
}

如果您正在使用事件侦听器,则可以根据其 ID 确定按钮,例如:

<s:Button id="snickers"
label="snickers"/>
<s:Button id="kitkat"
label="kitkat"/>
// add your event listeners somewhere like in onCreationComplete
snickers.addEventListener(MouseEvent.CLICK, chocolate);
kitkat.addEventListener(MouseEvent.CLICK, chocolate);
private function chocolate(e:MouseEvent):void
{
// e.target is the component that has dispatched the event (a button in this case)
var type:String = e.target.id;
trace("button", type, "was clicked");
if(type == "snickers")
{
// do stuff
}
else if(type == "kitkat")
{
// do something else
}
}

最新更新