我有一个场景,我有5个按钮,点击时调用相同的方法。在各种条件下单击这些按钮,但现在我想知道我们如何从被调用的方法确定单击了哪个特定按钮。
例如,当我点击按钮,泡芙,dailrymilk,cadbury,士力架和kitkat时,我一直在调用chocolate()方法。现在我将从UI中单击任何这些按钮,我想知道单击了哪一个。此事件只能在chocolate()方法中处理。
请建议我如何实现这一点。我使用的是Adobe Flex 3
答案 0 :(得分:0)
如果您没有使用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
}
}