flash AS3 — дочерний параметр должен быть ненулевым

получение ошибки

TypeError: Ошибка № 2007: дочерний параметр не должен быть нулевым. в flash.display::DisplayObjectContainer/addChildAt() в fl.controls::ProgressBar/drawTrack() в 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();

person mintuz    schedule 30.03.2011    source источник


Ответы (2)


не дает мне никаких ошибок в CS5, хотя вы можете проверить одну вещь: перетащите компонент индикатора выполнения из окна компонента, сохраните и запустите свой файл, а затем удалите экземпляр. после этого ваш код должен работать нормально.

также вы можете прокомментировать эту строку как:

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

проверьте фла здесь:

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

person coderbanna    schedule 30.03.2011
comment
Кроме того, просто перетащите его прямо в библиотеку, и тогда вам не потребуется дополнительный шаг по его удалению. Пока вы где-то используете класс в коде, ассоциации класса с символом достаточно, чтобы обеспечить включение символа и скинов. - person Josh Tynjala; 31.03.2011

Вы пытались позвонить

progressBarr.source = swfLoader.contentLoaderInfo;

после инициализации загрузчика? Возможно, вам придется подождать, пока это не будет создано, прежде чем назначать что-либо его contentLoaderInfo. Итак, удалите его вверху и добавьте ниже вызова swfLoader.load:

swfLoader.load(swfRequest);
progressBarr.source = swfLoader.contentLoaderInfo;
person user684503    schedule 30.03.2011