as3:将XML加载到我的类'属性中似乎没有达到我期望的效果

时间:2010-01-10 00:32:21

标签: xml actionscript-3

这看起来应该很容易,但我无法理解。

我正在尝试一个非常简单的类,在创建时,将类和XML文件加载到类的属性中。我必须得到一个基本的概念,因为我可以在handleComplete函数中看到XML正常,但类属性_result仍为空。

我在这里错过了什么概念?

提前致谢。

public class MyClass
{
    private var _result;

    public function MyClass()
    {
        var url:String = 'myFile.xml';
        var loader:URLLoader = new URLLoader();
        loader.addEventListener( Event.COMPLETE, handleComplete );
        loader.load( new URLRequest( url ) );

        trace(_result); //returns nothing... didn't I just load it?
    }

    private function handleComplete( event:Event ) : void
    {
        try
        {
            var res:XML = new XML( event.target.data );
            _result = res;

            trace(_result); // this writes the myFile.xml to command line as I would expect.
        }
        catch ( e:TypeError )
        {
            // some error handling code
        }
    }
}

}

1 个答案:

答案 0 :(得分:1)

第一个跟踪不打印的原因是因为对文件的请求不是同步的。这意味着它在后台运行,并且只有在完成时才会运行(如果文件非常大或网络连接不稳定可能需要一段时间),它会调用handleComplete函数。

在调用第一个trace()时,还没有调用handleComplete,因为文件还没有完成加载。