0

Flex4には、SkinClassAを備えたButtonAとSkinClassBを備えたButtonBがあります。ButtonBのクリックをSkinClassAで聞くことは可能ですか?

<Components:IconToggleClass id="ButtonA" skinClass="SkinClassA">
<s:Button id="ButtonB" skinClass="SkinClassB"  click="ButtonB_clickHandler(event)" />

// the SkinClassA class
<s:SparkSkin currentStateChanging="onCurrentStateChanging(event)" 
     added="onAddedHandler(event)" >

<!-- host component -->
<fx:Metadata>
<![CDATA[  
    [HostComponent("Components.IconToggleClass")]
 ]]>
</fx:Metadata>

<fx:Script >
    <![CDATA[

    import mx.events.StateChangeEvent;

    private function onAddedHandler(event:Event):void
    {
        setIcon("iconDefault");
    }
//I want something like this:
    private function onButtonBClick():void
    {
       //do something
    }

     ]]>

</fx:Script>
4

1 に答える 1

0

ホスト コンポーネントでクリック イベントをリッスンし、それに応じてスキンステートを更新する必要があります。

private function onButtonBClick(event:MouseEvent):void {
   beenClicked = true;
   invalidateSkinState();
}

protected override function getCurrentSkinState():String {
   if (beenClicked) 
       return "clicked";
   else
       return super.getCurrentSkinState();
}

スキンでは、2 番目のアイコンをロードする場所でもクリックされた状態を実装する必要があります。

于 2013-01-21T14:32:32.860 に答える