我们有VAST标签返回VPAID广告,我们使用actionscript3开发了类似于OVA的插件,因此广告应该使用我们开发的插件显示在adobe播放器中。但每次它都会出错
TypeError:错误#2007:参数child必须为非null。
在调试时,它会被初始化,启动并加载,但之后会显示此错误。有人可以帮忙吗?提前谢谢。
答案 0 :(得分:0)
如果我没有错,通常当你在actionscript中开发一些需要加载资产或在DisplayList中放置某些内容的东西时,你需要等待Sprite
准备就绪。我通常在Stage
类(或.fla文件中链接的类)中执行此操作,因此代码知道何时将资产加载到Main
DisplayList
有时public class Main extends Sprite {
public function Main():void{
init();
if (stage != null){
addedToStage();
}else{
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
}
private function addedToStage(e:Event = null):void {
//entry point
}
private function init():void{
//here you initialize your variables
}
}
会准备就绪,有时文件有点太重,加载需要时间,所以我们让听众等待。如果你在本地进行,它不会失败,但是一旦你把它放到网上(网站),你就会发现这种差异。
您可以尝试的其他方法是将该swf(ad)加载到Stage
Loader
并且在函数onCompleteContentLoaderInfo中检查_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteContentLoaderInfo);
一旦加载它在技术上是一个潜在的SWF,因此您可以检查其属性,并验证其阶段是否可用(非空)。
当你在线工作时,你总是需要检查听众是否要加载某些内容,这有时会很棘手;也许你已经知道了,但第一个检查_loader.content;
的听众非常重要。