我有一个自定义组件,它扩展了WindowedApplication和一个火花皮肤。在皮肤中我有一个HGroup,我希望HGroup的x位置设置在窗口标题的右边缘。我的问题是,每次我尝试绑定Hgroup的x时,FlashBuilder都会告诉我数据绑定将无法检测到的assignemnts。以下是我尝试过的一些不同方法以及FlashBuilder告诉我的内容:
<s:HGroup x= "{hostComponent.titleBar.titleText.right as Number}">
DataBindings无法检测到&#34;对&#34;的分配。
DataBindings将无法检测到&#34; titleBar&#34;的分配。
DataBindings将无法检测&#34; titleText&#34;的分配。
<fx:Script>
<![CDATA[
private var _offset:Object;
public function get offset():Object{
return _offset;
}
public function set offset(value:Object):void{
_offset = value;
}
]]>
</fx:Script>
<fx:Binding source="hostComponent.titleBar.titleText.right" destination="offset"/>
<s:HGroup x= "{offset as Number}">
DataBindings无法检测&#34; offset&#34;的分配。
DataBindings无法检测到&#34;对&#34;的分配。
DataBindings将无法检测到&#34; titleBar&#34;的分配。
DataBindings将无法检测&#34; titleText&#34;的分配。
我是一个相当新的flex,很抱歉,如果有一个我错过的明显答案。任何帮助将不胜感激。
答案 0 :(得分:1)
1-验证您的皮肤主机组件是否已正确设置:[HostComponent("YourComponent")]
2-创建一个全局可绑定数字var并将其值设置为titleBar.titleText.right
像这样的东西:
[Bindable]public var textRightPos:Number = titleBar.titleText.right;
3-如果问题持续存在,您可以尝试在creationcomplete事件处理程序上设置HGroup x值 你的皮肤。
答案 1 :(得分:0)
在您提供的代码片段中,在“_offset&#39;”之前添加元数据标签 [Bindable] 。
应该是这样的:
[Bindable]
private var _offset:Object;
在此更改后,您将看不到任何警告,数据绑定应该起作用。 另外我建议将一些默认值设置为_offset。