0
有沒有辦法在Flex 4 MXML組件中聲明皮膚內聯?如果不在組件中內聯,那麼在聲明或庫標籤中? Thx有沒有辦法聲明皮膚內聯?
有沒有辦法在Flex 4 MXML組件中聲明皮膚內聯?如果不在組件中內聯,那麼在聲明或庫標籤中? Thx有沒有辦法聲明皮膚內聯?
是的,你可以在聲明標籤:
<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>
上面的代碼僅僅是指導,不要指望它來編譯。
在我的測試中,使用內聯皮膚沒有性能損失。
使用skinClass樣式。
在MXML,就像這樣:
<s:List skinClass="com.myCustomSkins.MyCustomListSkin" />
在ActionScript中,做這樣的事情:
myListClass.setStyle('skinClass',com.myCustomSkins.MyCustomListSkin);
在CSS中,做這樣的事情:
myListClass{
skinClass : ClassReference(com.myCustomSkins.MyCustomListSkin);
}
我不知道你在問題中引用了什麼庫標籤。這段代碼來自內存,所以我的語法可能有點偏離。
這不是我的意思。我要聲明的皮膚類內嵌像你可以聲明組件直列所以像: – 2010-11-01 04:10:07
哦,我明白了。您不想引用另一個組件,您想要即時創建皮膚?我懷疑這是可能的。您只能在非常特定的情況下在線聲明組件。你試過了嗎?你有什麼問題? – JeffryHouser 2010-11-01 13:29:33
skinClass樣式只接受類引用, 產生一個IFactory,所以它們不兼容。 –
joshtynjala
2010-11-01 23:42:57