关于writeflashhtml引用Flash的一个错误
2010-03-01 7:42 - HTML/CSS/JS -
今天刚上班,同事来找我说之前些的一个Flash抽奖程序有问题,调用外部接口的时候报“null is null or not an object”错误。我下意识的反应是,他的JS有错误,因为Flash报错不会是这种问题,可是同事不承认,说被调用的JS接口他测试过了,没有问题。
无比郁闷之下,我回头看自己的代码,因为这次调用外部接口是最简单的方式,连参数都没有,加之JS的报错信息,我很自信自己的程序不会有问题。但是问题究竟出在哪呢?假设我的Flash和同事的被调用JS接口都没有问题,那么错误只能出现在swf的引用上,于是用FireDebug去看页面代码,发现引用swf使用的writeflashhtml这个方法,之前没有见过,查到这个是引用的XXX/flash.js文件,查看该方法的源码才了解,它只是用document来些HTML的一个方法,目的是省事,并没有实现特定的功能,而作为Object中最为重要的id参数,同事没有传进去,所以造成flash在引用外部接口的时候,在IE下浏览器不知道将结果返回给哪个元素,至于为什么FF和谷歌浏览器没有报错,还要继续研究下。
综上,当Flash使用ExternalInterface调用外部JS接口,出现“null is null or not an object”错误,首先要检查接口是否错误,其次检查Object的参数,尤其是ID这样重要的参数