2010-10-30 52 views

回答

3

是的,你可以在聲明標籤:

<s:Application> 

<fx:Declarations> 
    <fx:Component className="testSkin"> 
     <s:Skin> 
      <s:Rect width="100%" height="100%"> 
       <s:fill> 
        <s:SolidColor/> 
       </s:fill> 
      </s:Rect> 
      <s:Group id="contentGroup"/> 
     </s:Skin> 
    </fx:Component> 
</fx:Declarations> 

<s:SkinnableContainer skinClass="{Class(testSkin)}"/> 

</s:Application> 

上面的代碼僅僅是指導,不要指望它來編譯。

在我的測試中,使用內聯皮膚沒有性能損失。

2

使用skinClass樣式。

在MXML,就像這樣:

<s:List skinClass="com.myCustomSkins.MyCustomListSkin" /> 

在ActionScript中,做這樣的事情:

myListClass.setStyle('skinClass',com.myCustomSkins.MyCustomListSkin); 

在CSS中,做這樣的事情:

myListClass{ 
skinClass : ClassReference(com.myCustomSkins.MyCustomListSkin); 
} 

我不知道你在問題中引用了什麼庫標籤。這段代碼來自內存,所以我的語法可能有點偏離。

+0

這不是我的意思。我要聲明的皮膚類內嵌像你可以聲明組件直列所以像: 2010-11-01 04:10:07

+0

哦,我明白了。您不想引用另一個組件,您想要即時創建皮膚?我懷疑這是可能的。您只能在非常特定的情況下在線聲明組件。你試過了嗎?你有什麼問題? – JeffryHouser 2010-11-01 13:29:33

+1

skinClass樣式只接受類引用,產生一個IFactory,所以它們不兼容。 – joshtynjala 2010-11-01 23:42:57

相關問題