【问题标题】:Exception when extending a flex component扩展 flex 组件时的异常
【发布时间】:2010-11-16 03:07:15
【问题描述】:

当扩展一个 flex 组件并尝试使用它时,我得到一个 RTE。 IE。我正在扩展 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]

【问题讨论】:

  • 是来自 MyComponent.mxml 的 MXML 还是 包含 MyComponent.mxml 的 MXML?

标签: apache-flex components


【解决方案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 无法看到您的组件,这与它们必须导入才能使用的类相同,这只是一种形式。

希望这会有所帮助。

乔恩

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2012-03-09
    • 2020-05-27
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多