Apache flex 强制按钮更新其标签

Apache flex 强制按钮更新其标签,apache-flex,Apache Flex,我创建了一个自定义组件来覆盖linkButton,使其表现为,如果找到一个exist值,它将显示为“Added” 默认情况下,按钮标签是“添加到购物车”,在uHandler上尝试了多次尝试和错误后,我无法使按钮变为“添加”,我认为,完成,进入框架,创建完成甚至无法更新标签 public class Btn extends LinkButton{ public function Btn(){ super(); this.addEventListener(MouseE

我创建了一个自定义组件来覆盖linkButton,使其表现为,如果找到一个exist值,它将显示为“Added”

默认情况下,按钮标签是“添加到购物车”,在uHandler上尝试了多次尝试和错误后,我无法使按钮变为“添加”,我认为,完成,进入框架,创建完成甚至无法更新标签

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的代码更新了帖子