【问题标题】:MXML composite container initialization errorMXML 复合容器初始化错误
【发布时间】:2011-02-08 23:29:19
【问题描述】:

我的复合画布组件出现一个奇怪的错误:

 An ActionScript error has occurred:
  Error: null
at mx.core::Container/initialize()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\Container.as:2560]
at -REMOVED THIS FOR STACK OVERFLOW-.view::EditableCanvas/initialize()[.../view/EditableCanvas
    ....

这似乎与我的复合组件有一个孩子并且我试图在我正在使用该组件的地方添加一个这一事实有关。那么我该如何正确地做到这一点呢?

组件代码如下所示(EditableCanvas.mxml):

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<mx:Image id="editTextImage"
            source="@Embed('/../assets/icons/small/edit.png')"/>
</mx:Canvas>

使用该代码的代码如下所示:

<view:EditableCanvas
            width="290" 
            height="120" 
            backgroundColor="#FFFFFF" 
            horizontalScrollPolicy="off" 
            borderStyle="solid" 
            cornerRadius="3">
            <mx:Text id="textContentBox" width="270" fontFamily="nautics" fontSize="12" text="{_text}"/>
</view:EditableCanvas>

【问题讨论】:

    标签: apache-flex mxml


    【解决方案1】:

    您是否尝试过不绑定到 init() 函数,而只是使用 creationComplete="init()" ?

    【讨论】:

      【解决方案2】:

      所以我自己从Adobe Flex 3 Help找到了解决方案:

      如果您在 MXML 组件文件中包含根容器标签的子标签,则当您将该组件用作另一个 MXML 文件中的自定义标签时,您将无法添加子标签。如果您在 MXML 文件中定义了一个空容器,您可以在将组件用作自定义标签时添加子标签。

      在复合组件中拥有子元素(也接受来自自定义标签的子元素)的方法是在 as3 中的 creationComplete 之后添加它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 2015-01-13
        • 1970-01-01
        • 1970-01-01
        • 2016-06-23
        • 1970-01-01
        相关资源
        最近更新 更多