2010-06-06 17 views
0

J'essaye de créer une galerie où chaque pouce est logé dans son propre clip qui aura plus de données, mais il continue à échouer parce qu'il a gagné ' Je vais me référer à l'instance nouvellement créée du clip. Voici ce que j'essaie de faire.Ajouter un enfant dans une instance nouvellement créée, à l'intérieur d'une boucle dans AS3

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); 

} 

Il meurt à chaque fois sur cette dernière ligne. Comment puis-je me référer à cette occurrence de vidThumbn pour pouvoir ajouter l'imageLoader? Je ne sais pas ce qui me manque. On dirait que ça devrait marcher.

Répondre

0

Vous devez parler comme vidThumbn, et non l'adresse étendue ....

+0

Pouvez-vous ajouter un exemple de code détaillé sur ce qui doit être référé exactement –

0

Je pense qu'il échoue parce que le imageLoader n'a pas chargé l'image. De plus, imageLoader ne contient pas les "données" de son iamgeLoader.content

meilleure façon: créer une "classe LoaderSprite" au lieu de 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)); 
    } 
}