Apache flex Adobe Flex-在MXML中显示HostComponent中的可视元素
我有一个Skinnable组件:Apache flex Adobe Flex-在MXML中显示HostComponent中的可视元素,apache-flex,bind,flex4.5,skin,displayobject,Apache Flex,Bind,Flex4.5,Skin,Displayobject,我有一个Skinnable组件: public class ContentView extends SkinnableComponent { [Bindable] public var titleBar:IVisualElement; public function ContentView(pContentXML:XML) { this.setStyle("skinClass", ContentViewSkin ); } }
public class ContentView extends SkinnableComponent
{
[Bindable]
public var titleBar:IVisualElement;
public function ContentView(pContentXML:XML)
{
this.setStyle("skinClass", ContentViewSkin );
}
}
现在我想在mxml皮肤文件中显示标题栏
<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Metadata>
[HostComponent("EMM.App2Go.Viewer.Component.ContentView")]
</fx:Metadata>
<s:DataGroup width="100%" >
<s:dataProvider>
<s:ArrayList source="{hostComponent.titleBar}" />
</s:dataProvider>
</s:DataGroup>
[主机组件(“EMM.App2Go.Viewer.Component.ContentView”)]
正如你所看到的,我用一个数据组来管理它,但这有点难看,我正在考虑一种更简单的方法来这样做
<fx:Object source="hostComponent.titleBar" />
或者类似的
我希望您能帮助我。您似乎对Spark蒙皮模型的工作原理有着深刻的误解。为了显示项目,不应该从外观引用hostComponent。你应该在皮肤中创建元素;并使用相同的名称。因此,如果hostComponent的蒙皮部分定义如下:
[Bindable]
[SkinPart]
public var titleBar:IVisualElement;
<s:DataGroup width="100%" id="titleBar" >
</s:DataGroup>
皮肤应该有这样的东西:
[Bindable]
[SkinPart]
public var titleBar:IVisualElement;
<s:DataGroup width="100%" id="titleBar" >
</s:DataGroup>
我建议你通读这篇文章,同时也要了解文章的内容