在扩展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]
答案 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就看不到你的组件了,它与它们必须导入的类相同,这只是一种形式。
希望这有帮助。
乔恩