扩展flex组件时出现异常

时间:2009-08-02 04:08:57

标签: flex components

在扩展flex组件并尝试使用它时,我得到一个RTE。即我正在扩展DataCanvas并使用它:

<MyComponent dataProvider="{dataProvider}" width="100%" height="100%" x="0" y="0" id="dc" verticalCenter="0" horizontalCenter="0" />

有没有人见过这个?我怎么能绕过它呢? 谢谢!

Error: ConstraintColumn '[object' not found.
at mx.containers.utilityClasses::CanvasLayout/applyAnchorStylesDuringUpdateDisplayList()[E:\dev\beta1\frameworks\projects\framework\src\mx\containers\utilityClasses\CanvasLayout.as:544]
at mx.containers.utilityClasses::CanvasLayout/updateDisplayList()[E:\dev\beta1\frameworks\projects\framework\src\mx\containers\utilityClasses\CanvasLayout.as:287]
at mx.containers::Canvas/updateDisplayList()[E:\dev\beta1\frameworks\projects\framework\src\mx\containers\Canvas.as:400]
at mx.core::UIComponent/validateDisplayList()[E:\dev\beta1\frameworks\projects\framework\src\mx\core\UIComponent.as:7691]
at mx.core::Container/validateDisplayList()[E:\dev\beta1\frameworks\projects\framework\src\mx\core\Container.as:3208]
at mx.managers::LayoutManager/validateDisplayList()[E:\dev\beta1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:663]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\beta1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\beta1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1067]

1 个答案:

答案 0 :(得分:1)

可能有很多东西,可能很好发布源代码,所以我们可以看一下。

乍一看,可能是因为你没有给出正确的路径,flex无法找到你的组件。

声明mxml组件的常用结构是使用命名空间限定它们,以便编译器知道在哪里查找。例如,对于标准flex组件,您将“mx”前缀添加到组件标记的前面:

<mx:label text='boo'/>

请记住,mxml是xml的一个子集,因此适用所有相同的规则。所以我首先尝试将命名空间声明添加到根标记,然后使用该命名空间限定组件。命名空间应指向您拥有组件源文件的文件夹,即

<Application xmlns:customcomponents="myComponents.*" >

然后对组件进行限定:

   <customcomponents:MyComponent dataProvider="{dataProvider}" width="100%" 
height="100%" x="0" y="0" id="dc" verticalCenter="0" horizontalCenter="0" />

一个句柄提示是,如果你按下control +空格键并且找不到你的组件声明那么flex就看不到你的组件了,它与它们必须导入的类相同,这只是一种形式。

希望这有帮助。

乔恩