2015-01-07 34 views
0

我有一个自定义组件,它扩展了WindowedApplication和一个可以使用它的Spark皮肤。在皮肤中,我有一个HGroup,并且我希望HGroup的x位置被设置到窗口标题的右边缘。我的问题是,每次我尝试绑定H组的x时,FlashBuilder都会告诉我数据绑定将无法检测到分配者。下面是一些不同的方法我试过和究竟FlashBuilder告诉我:DataBindings将无法检测到作业

<s:HGroup x= "{hostComponent.titleBar.titleText.right as Number}"> 

数据绑定将无法检测到分配来“正确的”。

DataBindings将无法检测到对“titleBar”的分配。

DataBindings将无法检测到对“titleText”的分配。

<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将无法检测到对“偏移量”的赋值。

DataBindings将无法检测到“正确”的分配。

DataBindings将无法检测到对“titleBar”的分配。

DataBindings将无法检测到对“titleText”的分配。

我相当新的flex,所以很抱歉,如果有明显的答案,我错过了。任何帮助将不胜感激。

+0

只是为了澄清 - 它是不是你想要的,或者你只是想要处理警告? – Brian

回答

1

1-验证你的皮肤主机组件是否正确设置好的:[HostComponent("YourComponent")]

2 - 创建一个全球性的可绑定号码var和设置它的价值titleBar.titleText.right 是这样的:

[Bindable]public var textRightPos:Number = titleBar.titleText.right; 

如果3-问题持续存在,您可以尝试在皮肤的creationcomplete事件处理程序 上设置HGroup x值。

0

在您提供的代码片段中添加元数据标记[Bindable]'_offset'之前。

它应该是这样的:

[Bindable] 
private var _offset:Object; 

此更改后,你会不会看到任何警告和数据绑定应该工作。 另外我会建议设置一些默认值_offset。