【发布时间】:2016-01-24 03:54:03
【问题描述】:
我正在另一个函数中调用函数,如下所示:
import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE,loadXML);
var xmlData:XML = new XML();
function loadXML(e:Event = null):void{
xmlData = new XML(e.target.data);
//var production:String = xmlData.production.app_id.text();
trace(xmlData);
var states:String = xmlData.state.place.text();
var desc:String = xmlData.state.description.text();
var image:String = xmlData.state.image.text();
trace('this is working');
}
xmlLoader.load(new URLRequest('test.xml'));
obj.addEventListener(MouseEvent.MOUSE_OVER,fl_MouseOverHandler);
function fl_MouseOverHandler(event:MouseEvent):void
{
loadXML();
}
在这种情况下出现警告:Cannot access a property or method of a null object reference
我该如何解决这个问题?上面提到的是完整的代码。
【问题讨论】:
-
你实际上并没有在任何地方加载xml....因为你直接调用
loadXML(),e为null,所以由于e为null,你不能访问target属性从它。 -
我在加载 xml 时更新了我的代码同样的警告
-
首先,它应该向您显示错误所在的行。其次,由于您的
loadXML()是一个需要数据的事件侦听器,您应该永远使用空事件手动调用它。因此,您应该删除调用loadXML()的代码并等待完成,或者在ioErrorandsecurityError上添加一个事件侦听器,以检查您是否被允许加载该文件并实际加载。 -
并删除
Event参数的默认值null,因为正如@Vesper 解释的那样,使用该值执行函数没有任何意义。反之亦然:如果e == null,您想中止函数执行。 -
空错误不是警告,而是错误。
标签: actionscript-3 flash