2012-10-05 42 views
0

我有一個自定義Flex切換開關組件,用於更改開關的文本值。Flex自定義切換開關在actionscript中不起作用

package skins 
{ 
    import spark.skins.mobile.ToggleSwitchSkin; 

    public class MyToggleSwitchSkin extends ToggleSwitchSkin 
    { 
     public function MyToggleSwitchSkin() 
     { 
      super(); 
      selectedLabel="Serviceable"; 
      unselectedLabel="Fault"; 

     } 
    } 
} 

如果我使用MXML標籤添加控件,它可以正常工作。但是,當我使用動作腳本添加組件時,它不會。

import skins.MyToggleSwitchSkin; 
public function addToggle():void { 
    var myCustomToggle:MyToggleSwitchSkin = new MyToggleSwitchSkin(); 
    hgroup.addElement(myCustomToggle); 
} 

控制dsiplays,但不會激活。

任何想法,我已經錯過了?

+2

您實施的是自定義ToggleSwitch-SKIN,而不是自定義的ToggleSwitch。改爲使用ToggleSwitch的子類。 – AlBirdie

+0

我對Apache Flex存儲庫中的ToggleSwitch類進行了擴展,使您可以使用類的屬性而不是自定義外觀來更改這些值。 http://svn.apache.org/viewvc/incubator/flex/whiteboard/jhouser/ToggleSwitchAlternate/。 – JeffryHouser

+0

輝煌,謝謝 –

回答

0

沒有看到你的MXML代碼,很難比較你的兩種方法,但我相信@al_Birdy解決了這個問題。你已經創建了一個自定義的ToggleSwitchSkin;不是自定義的ToggleSwitch。

修改您addToggle()方法是這樣的:

public function addToggle():void { 
    var myCustomToggle:MyToggleSwitch = new MyToggleSwitch(); 
    myCustomToggle.setStyle('skinClass',skins.MyToggleSwitchSkin); 
    hgroup.addElement(myCustomToggle); 
} 

我懷疑你有更好的運氣。

+0

感謝所有的指點,仍然努力克服我的菜鳥階段。 –