Apache flex 访问Flex(mxml)中的属性时出错

Apache flex 访问Flex(mxml)中的属性时出错,apache-flex,mxml,flex-mx,Apache Flex,Mxml,Flex Mx,我有一个包含以下内容的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{

我有一个包含以下内容的
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>
但是我在
initLayer
函数中得到了一个错误,它与空对象t\u层的
未定义属性相关

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

编辑

真不敢相信。只要回答Timofei,当我测试我的颂歌时,它就起作用了。怎样我更改
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++;
}

您何时调用
initLayer
?不要早于FlexEvent。创建完成由画布调度。

感谢您的回答,但我无法检查此事件,因为我创建对象的函数位于另一个函数内。我将修改我的问题以澄清它。无论如何,我赞成你的答案。谢谢你的帮助,难以捉摸的海森堡。如果您发现更多信息,可以再次标记以重新打开,以便发布答案。
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++;
}