TypeError:错误#2007:在adobe播放器中播放VPAID广告时,参数child在as3中必须为非null

时间:2014-02-07 10:53:35

标签: xml actionscript-3 flash vast

我们有VAST标签返回VPAID广告,我们使用actionscript3开发了类似于OVA的插件,因此广告应该使用我们开发的插件显示在adobe播放器中。但每次它都会出错

  

TypeError:错误#2007:参数child必须为非null。

在调试时,它会被初始化,启动并加载,但之后会显示此错误。有人可以帮忙吗?提前谢谢。

1 个答案:

答案 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;的听众非常重要。