Apache flex 强制按钮更新其标签
我创建了一个自定义组件来覆盖linkButton,使其表现为,如果找到一个exist值,它将显示为“Added” 默认情况下,按钮标签是“添加到购物车”,在uHandler上尝试了多次尝试和错误后,我无法使按钮变为“添加”,我认为,完成,进入框架,创建完成甚至无法更新标签Apache flex 强制按钮更新其标签,apache-flex,Apache Flex,我创建了一个自定义组件来覆盖linkButton,使其表现为,如果找到一个exist值,它将显示为“Added” 默认情况下,按钮标签是“添加到购物车”,在uHandler上尝试了多次尝试和错误后,我无法使按钮变为“添加”,我认为,完成,进入框架,创建完成甚至无法更新标签 public class Btn extends LinkButton{ public function Btn(){ super(); this.addEventListener(MouseE
public class Btn extends LinkButton{
public function Btn(){
super();
this.addEventListener(MouseEvent.CLICK, labelHandler);
this.addEventListener(FlexEvent.INITIALIZE, loopArray);
this.addEventListener(FlexEvent.PREINITIALIZE, cHandler);
this.addEventListener(Event.COMPLETE, uHandler);
}
...
private var disableLabel:int = 0;
private function uHandler(event:Event):void {
trace("creation");
if(disableLabel == 1){
super.label = "Already added";
disableLabel = 0;
}
}
请给出建议。您甚至不必扩展
LinkButton
类来更改其标签。你可以打电话:
linkBtnInstanceName.label = "Added";
如果事件侦听器位于
中继器中,则可以使用它。检查此代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Repeater id="rp">
<mx:dataProvider>
<mx:Array>
<mx:String>ASD</mx:String>
<mx:String>QWE</mx:String>
<mx:String>ZXC</mx:String>
<mx:String>123</mx:String>
</mx:Array>
</mx:dataProvider>
<mx:LinkButton label="{rp.currentItem}" click="onClick(event);"/>
</mx:Repeater>
<mx:Script>
<![CDATA[
private function onClick(event:MouseEvent):void
{
//this works
LinkButton(event.currentTarget).label = "Clicked";
}
]]>
</mx:Script>
</mx:Application>
自闭症
QWE
ZXC
123
我是未知者(谷歌),你刚刚给了我使用creationcomplete的间接想法,而不需要扩展组件,它确实显示了我所需要的。谢谢
我几乎要向你开枪了,但我还是设法理解了你在尝试和错误后试图解释的内容。它不是这样工作的,我相信dispatchevent是唯一的解决方案,因为按钮位于中继器组件内按钮位于中继器内-感谢你在问题中提到这一点。使用LinkButton(event.currentTarget).label=“Added”
使用repeater的代码更新了帖子