DataBindings将无法检测分配

时间:2015-01-07 15:13:15

标签: actionscript-3 flex air flex4

我有一个自定义组件,它扩展了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,很抱歉,如果有一个我错过的明显答案。任何帮助将不胜感激。

2 个答案:

答案 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。