【问题标题】:Error accessing to property in Flex (mxml) [closed]访问 Flex(mxml)中的属性时出错 [关闭]
【发布时间】:2011-11-23 11:20:24
【问题描述】:

我有一个MXML 文件,里面有这个:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="30">
    <mx:Script>
        <![CDATA[

            public function initLayer(name:String):void{
                t_layer.text = name;
            }

        ]]>
    </mx:Script>

    <mx:Grid id="mainGrid" width="100%" height="100%" >
        <mx:GridRow>
            <mx:GridItem width="80%">
                <mx:Text id="t_layer" text="new" />
            </mx:GridItem>
        </mx:GridRow>
    </mx:Grid>
</mx:Canvas>

从另一个 AS 文件,我正在创建一个 Layer 对象:

public function addLayer(name:String):void{
    var layer:Layer = new Layer();
    layer.initLayer(name);
    layer.x = 0;
    layer.y = _layers*layer.height;
    layersContainer.addChild(layer);
    _layers++;
}

但是我在initLayer 函数中遇到了一个相对于undefined property for null object t_layer 的错误。

我做错了什么?你能帮帮我吗?

编辑

我不敢相信。只需回答 Timofei,当我测试我的 ode 时它就可以工作。如何?我像这样更改addLayer 方法中函数的顺序:

public function addLayer(name:String):void{
        var layer:Layer = new Layer();
        layer.x = 0;
        layer.y = _layers*layer.height;
        layersContainer.addChild(layer);
        layer.initLayer(name);
        _layers++;
}

【问题讨论】:

  • 难以捉摸的黑森虫。如果您发现更多信息,可以再次标记以重新打开,以便发布答案。

标签: apache-flex mxml flex-mx


【解决方案1】:

你什么时候打电话给initLayer?不要早于 FlexEvent.CREATION_COMPLETE 被您的画布调度。

【讨论】:

  • 感谢您的回答,但我无法检查此事件,因为我创建对象的函数在另一个函数中。我将编辑我的问题以澄清它。
  • 无论如何,我赞成你的答案。谢谢你的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多