我正在执行以下代码
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);
当你用URLRequest创建它时,URLloader就会执行。
我的问题是我在那个语句之后添加了一个事件监听器,它目前捕获了事件。完成事件,这在未来会继续工作吗?还是应该在调用load之前添加eventListeners ?
如果你担心这个问题,就不要加载构造函数。构造函数中的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中处理构造函数的方式。