flash AS3 - 参数child必须为非null

时间:2011-03-30 18:18:45

标签: actionscript-3 actionscript flash-cs5

收到错误

  

TypeError:错误#2007:参数   孩子必须是非空的。在   flash.display使用::的DisplayObjectContainer / addChildAt()     在   fl.controls ::进度/ drawTrack()     at fl.controls :: ProgressBar / draw()     在   fl.core :: UIComponent / callLaterDispatcher()

在cs5内,任何想法。谢谢。动画导入很好,但是我没有显示进度条就得到了这个错误。

import fl.controls.ProgressBar;
var swfRequest:URLRequest = new URLRequest("animation2.swf"); //load animation file
var swfLoader:Loader = new Loader();
var progressBarr:ProgressBar = new ProgressBar();
progressBarr.source = swfLoader.contentLoaderInfo;
progressBarr.x = 27;
progressBarr.y = 155;

loadMovie();

function loadMovie():void{
    addChild(progressBarr);
    swfLoader.load(swfRequest);
}

swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded, false, 0, true); //when loaded call swfLoaded
//swfLoader.load(swfRequest);
//
function swfLoaded(event:Event):void{
     swfMC.addChild(swfLoader); //add animation to swfMC movie clip
     removeChild(progressBarr);
}

stop();

2 个答案:

答案 0 :(得分:1)

在CS5中没有给我任何错误,虽然您可以检查的一件事是,从组件窗口拖动进度条组件,保存并运行您的文件,然后删除该实例。之后你的代码就可以了。

你也可以将这一行评论为:

var progressBarr:ProgressBar = new ProgressBar();
//progressBarr.source = swfLoader.contentLoaderInfo;
progressBarr.x = 27;
progressBarr.y = 155;

检查fla:

http://ashwani.50webs.com/test.fla

答案 1 :(得分:0)

您是否尝试过调用

progressBarr.source = swfLoader.contentLoaderInfo;

你初学了装载机?您可能需要等到实例化之后再向其contentLoaderInfo分配任何内容。因此,将其从顶部移除并将其添加到swfLoader.load调用下方:

swfLoader.load(swfRequest);
progressBarr.source = swfLoader.contentLoaderInfo;