2012-03-26 63 views
0

我在actionscritpt中創建了一個擴展spark.components.Button的類,因爲我將在運行時加載一堆按鈕。我有一個SkinnableContainer.mxml文件,它將加載spark按鈕。當我在該mxml文件中使用addElement()方法時,我的按鈕的自定義外觀沒有顯示。按鈕外觀不顯示與addElement();

//in the SkinnableContainer.mxml file 
public function displayButton(button:Button):void 
{ 
    addElement(button); 
} 

但是如果在同一SkinnableContainer.mxml文件我通過

<mybuttons:CustomButton x="73" y="4"/> 

拖放到皮膚顯示就好了。

我想也許因爲正在添加的按鈕,我已經叫loadStyleDeclarations後,這可能是問題,所以我叫

styleManager.loadStyleDeclarations(skin, true, true, ApplicationDomain.currentDomain); 

後,我添加的按鈕元素和按鈕仍然沒有皮膚。

任何想法?

+0

在你有你的參數類型爲一個按鈕,而不是一個的CustomButton的displayButton方法適用於你的皮膚傳遞的按鈕,你確定一個的CustomButton正在被傳入呢?在向顯示樹添加元素之後,您不需要重新加載樣式聲明,只要樣式已註冊並且組件實現樣式的使用,就應該應用它們。 – shaunhusain 2012-03-26 17:00:00

+0

謝謝,我會給你一個鏡頭 – user1210003 2012-04-02 20:35:13

回答

0

由於shaunhusain說你的方法正在尋找一個火花按鈕,而不是你的CustomButton,我認爲它可以處理蒙皮。

不管這個,你的方法裏,你可以使用的setStyle

public function displayButton(button:Button):void 
{ 
    button.setStyle("skinClass", your.button.SkinClass); 
    addElement(button); 
} 
+0

我會給你一個鏡頭,謝謝 – user1210003 2012-04-02 20:35:42