我正在执行以下代码
var myXMLURL:URLRequest = new URLRequest("config.xml");
myLoader = new URLLoader(myXMLURL); // implicitly calls the load method here
myLoader.addEventListener(Event.COMPLETE, xmlLoaded);
myLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
URLloader会在您使用URLRequest创建后立即执行 我的问题是我在该语句之后添加了一个eventlistener,它当前捕获了Event.Complete事件,将来还会继续工作吗?还是应该在调用load之前添加eventListeners?
答案 0 :(得分:1)
如果您对此感到担心,请不要加载构造函数。构造函数中的URLRequest
是可选的。
这样做:
var myXMLURL:URLRequest = new URLRequest("config.xml");
myLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, xmlLoaded);
myLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
myLoader.load( myXMLURL );
这是我处理所有URLLoader
的方式。我喜欢完全控制我的代码,所以不在构造函数中设置URLRequest让我可以在我选择时自由调用load()
,并在加载开始之前给我选项来添加事件监听器。事实上,URLLoader允许在构造函数中自动加载的事实总是令我感到困惑。它完全违背了Adobe在整个SDK中处理构造函数的方式。