2012-01-10 5 views
1

Je débute avec Flash Builder 4.6 et je tente de créer une application mobile. J'essaie de charger un fichier png à partir d'un site Web, puis enregistrez-le avec PersistenceManager pour un affichage ultérieur. Mais rien ne se voit. Voici comment je charge l'image, il semble que cela fonctionne.Charger le png depuis l'URL l'enregistrer et l'afficher

public class MySetup 
{ 
    public var myId:String; 
    public var myName:String; 
    public var myImage:Object; 
} 
    protected function loadImage():void{ 
    var request:URLRequest = new URLRequest ("http://www.myweb.com/pictures/myImage.png"); 
    var loader:URLLoader = new URLLoader(); 
    loader.dataFormat = URLLoaderDataFormat.BINARY; 
    loader.load(request); 
    loader.addEventListener(Event.COMPLETE, oncomplete); 
    } 

    protected function oncomplete(e:Event):void{ 
var saveManager:PersistenceManager = new PersistenceManager(); 
var loader2:URLLoader = e.target as URLLoader; 
if (loader2 != null){ 
     mySetup.myLogo = loader2.data; 

     } 
     else{ 
      trace("an error has occured!"); 
     } 
     mySetup.myId = myId.text; 
     mySetup.myName = myName.text; 
     saveManager.setProperty("setupData", mySetup); 
     saveManager.save(); 

     } 

Maintenant, j'essaie d'afficher l'image, je reçois une erreur:

private var myLogo:Image; 
    protected function view1_creationCompleteHandler(event:FlexEvent):void 
    { 
    var loadManager:PersistenceManager = new PersistenceManager(); 
    if(loadManager.load()) 
     { 
     var savedData:Object = loadManager.getProperty("setupData");  
      if(savedData){ 
         myLogo = savedData.myLogo; 
         } 
     } 
    } 


    <s:Image id="MyImage" y="10" width="290" height="164" scaleMode="stretch" source="myLogo"/> 

Merci pour toute aide. Kim

Répondre

1

myLogo doit être un ByteArray.

Questions connexes