Добавьте дочерний элемент во вновь созданный экземпляр, внутри цикла в AS3 - PullRequest
0 голосов
/ 06 июня 2010

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

var xml:XML;
var xmlReq:URLRequest = new URLRequest("xml.xml");
var xmlLoader:URLLoader = new URLLoader();
var imageLoader:Loader;
var vidThumbn:ThumbNail;
var next_y:Number = 0;

    for(var i:int = 0; i < xml.downloads.videos.video.length(); i++)
{   
    vidThumbn = new ThumbNail();
    imageLoader = new Loader();
    imageLoader.load(new URLRequest(xml.downloads.videos.video[i].ThumbnailImage));
    vidThumbn.y = next_y;
    vidThumbn.x = 0;
    next_y += 117;
    imageLoader.name = xml.downloads.videos.video[i].Files[0].File.URL;
    videoBox.thumbList.thumbListHolder.addChild(vidThumbn);
    videoBox.thumbList.thumbListHolder.vidThumbn.addChild(imageLoader);

}

Он умирает каждый раз в этой последней строке. Как мне обратиться к этому экземпляру vidThumbn, чтобы я мог добавить imageLoader? Я не знаю, что мне не хватает. Такое ощущение, что должно работать.

Ответы [ 2 ]

0 голосов
/ 08 июня 2010

Я думаю, что это не удается, потому что imageLoader не загрузил изображение. Кроме того, imageLoader не хранит «данные» в своем iamgeLoader.content

лучший способ: создайте «класс LoaderSprite» вместо imageLoader = new Loader ();

    public class LoaderSprite extends Sprite 
{
    private var _ldr : Loader;

    public function LoaderSprite(url : String)
    {
        _ldr = new Loader();
        _ldr.load(new URLRequest(url));
        _ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
    }

    private function onComplete(event : Event) : void
    {
        //Bitmap(_ldr.content).smoothing = true;
        addChild(_ldr.content);

        // Fireing your own event
        //dispatchEvent(new LoaderSpriteEvent(LoaderSpriteEvent.LOADED));
    }
}
0 голосов
/ 06 июня 2010

Вы должны называть это vidThumbn, а не расширенный адрес ....

...