PDA

Volledige versie bekijken : Van jpg naar bitmap?


PageMaker
%Europe/Berlin %707 %2010, 17:59
private function loadImage():void
{
var loader:Loader = new Loader();
loader.addEventListener(Event.COMPLETE, initBitmaps);

var request:URLRequest = new URLRequest(url);
loader.load(request);

//addChild(loader); // hier zie ik de foto!
} // loadImage


private function initBitmaps(evt:Event) : void
{
var img:Bitmap = evt.target.content as Bitmap;

addChild(img); // hier zie ik de foto niet
}
Wat doe ik hier nu fout dat ik bij addChild(img) de foto niet meer zie?

PageMaker
%Europe/Berlin %724 %2010, 18:23
Het moet zijn:
loader.contentLoaderInfo.addEventListener(Event (http://www.google.com/search?q=event%20inurl:http://livedocs.adobe.com/flex/3/langref/%20inurl:event.html).COMPLETE, initBitmaps);
en in initBitmaps()
var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
var img:Bitmap (http://www.google.com/search?q=bitmap%20inurl:http://livedocs.adobe.com/flex/3/langref/%20inurl:bitmap.html) = loaderInfo.content as Bitmap;

en dan werkt het!

Maar, waarom is die tussenstap noodzakelijk?

Jan
%Europe/Berlin %842 %2010, 21:13
1)
Je Loader is al geladen, je wil weten wanneer de content van die Loader geladen is, dus addEventListener toepassen op de contentLoaderInfo property. (Die speciale property is er omdat je op het moment dat je gaat laden niet kan luisteren naar de content aangezien die nog null is.)

2)
addChild(evt.currentTarget.loader.content); zou ook moeten lukken lijkt me

Maar waarom voeg je niet gewoon de Loader zelf toe met addChild()?

Jan

PageMaker
%Europe/Berlin %451 %2010, 11:49
Dank je Jan,
Die speciale property is er omdat je op het moment dat je gaat laden niet kan luisteren naar de content aangezien die nog null is
Dat verklaart de zaak!