Actionscript 3 contentGroup内的Flex SkinnableContainer外观访问组
我有一个skin类,在其中我在contentGroup中定义了一个组:Actionscript 3 contentGroup内的Flex SkinnableContainer外观访问组,actionscript-3,apache-flex,flex4.5,skin,Actionscript 3,Apache Flex,Flex4.5,Skin,我有一个skin类,在其中我在contentGroup中定义了一个组: <s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" minWidth="475" minHeight="0"> <s:layout> <s:HorizontalLayout paddingLeft="0" paddingRight="0" paddingTop="0" paddi
<s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" minWidth="475" minHeight="0">
<s:layout>
<s:HorizontalLayout paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" gap="2" />
</s:layout>
<s:Group id="group_nav_custom_comp_hgroup_prevnext" left="0" right="0" top="0" bottom="0" minWidth="100" minHeight="0">
<s:layout>
<s:HorizontalLayout paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0" gap="5" />
</s:layout>
<s:Button label="Test Button"/>
</s:Group>
</s:Group>
结果是我的:group_nav_custom_comp_hgroup_prevnext根本没有显示,编译时出现在其中的按钮不可见这一事实就证明了这一点。有人知道如何让它出现吗谢谢-迈克
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
好的,我将我的子组添加为蒙皮部分:
[SkinPart(required=“true”)]
公共变量组\导航\自定义\公司\集团\前置:集团
现在我可以从CustomComponent中的任何位置访问它。但是“group_nav_custom_comp_hgroup_prevnext”中的按钮仍然没有显示。有人知道为什么吗
package com.viiv.digi.views.navigation
{
import mx.core.IVisualElement;
import mx.core.UIComponent;
import skins.GroupNavCustomSkin;
import spark.components.Group;
import spark.components.SkinnableContainer;
public class GroupNavCustomContainer extends SkinnableContainer
{
private var m_group_prev_next:Group = null;
private var m_bAdded_btns:Boolean = false;
private var _prevbtn:UIComponent = null;
[SkinPart(required="true")]
public var group_nav_custom_comp_hgroup_prevnext:Group;
public function GroupNavCustomContainer()
{
super();
setStyle("skinClass", GroupNavCustomSkin);
}
//----------------------------------
public function set prevBtn(ui_comp_prev:UIComponent):void
{
_prevbtn = ui_comp_prev;
m_bAdded_btns = true;
invalidateProperties();
}
//------------------------------------
public function get prevBtn():UIComponent
{
return _prevbtn;
}
//-------------------------------------------------------------------- -----
override protected function partAdded(partName:String, instance:Object):void
{
trace("In partAdded");
super.partAdded(partName, instance);
}
//-------------------------------------------------------------------- ----
override protected function commitProperties():void
{
super.commitProperties();
if (m_bAdded_btns)
{
m_bAdded_btns = false;
group_nav_custom_comp_hgroup_prevnext.addElement(_prevbtn);
}
}
}
}
contentGroup应该包含添加到SkinnableContainer的元素,而不包含其他内容。这是在父组件中管理的,而不是皮肤。因此,您可以在contentGroup的正下方添加“group_nav_custom_comp_hgroup_prevnext”组组件定义,然后在GroupNavCustomContainer中引用它
package com.viiv.digi.views.navigation
{
import mx.core.IVisualElement;
import mx.core.UIComponent;
import skins.GroupNavCustomSkin;
import spark.components.Group;
import spark.components.SkinnableContainer;
public class GroupNavCustomContainer extends SkinnableContainer
{
private var m_group_prev_next:Group = null;
private var m_bAdded_btns:Boolean = false;
private var _prevbtn:UIComponent = null;
[SkinPart(required="true")]
public var group_nav_custom_comp_hgroup_prevnext:Group;
public function GroupNavCustomContainer()
{
super();
setStyle("skinClass", GroupNavCustomSkin);
}
//----------------------------------
public function set prevBtn(ui_comp_prev:UIComponent):void
{
_prevbtn = ui_comp_prev;
m_bAdded_btns = true;
invalidateProperties();
}
//------------------------------------
public function get prevBtn():UIComponent
{
return _prevbtn;
}
//-------------------------------------------------------------------- -----
override protected function partAdded(partName:String, instance:Object):void
{
trace("In partAdded");
super.partAdded(partName, instance);
}
//-------------------------------------------------------------------- ----
override protected function commitProperties():void
{
super.commitProperties();
if (m_bAdded_btns)
{
m_bAdded_btns = false;
group_nav_custom_comp_hgroup_prevnext.addElement(_prevbtn);
}
}
}
}