2009-09-06 5 views
2
   var myFile:File = new File("./test.jpg"); 
       var myFileStream1:FileStream = new FileStream(); 
       myFileStream1.open(myFile, FileMode.READ); 
            var byte:ByteArray = new ByteArray(); 
           myFileStream1.readBytes(byte,0,byte.bytesAvailable); 
       myFileStream1.close(); 

maintenant comment puis-je ajouter une variable byte à la toile? par exemple var canvas: Canvas = new Canvas(); canvas.addChild (octet); est-il possible d'ajouter ByteArray à la toile?flex core ByteArray Image

Répondre

0

Non, vous ne pouvez pas. C'est parce que ByteArray lui-même ne peut pas être affiché puisque le Flash Player ne sait pas ce que c'est.

Dans votre cas, vous allez afficher l'image "test.jpg" sur un Canvas, non? Vous pouvez simplement définir la propriété source du contrôle Image sur l'objet ByteArray chargé et l'ajouter au Canvas. Voir http://livedocs.adobe.com/flex/3/langref/mx/controls/Image.html

+0

Eh bien, votre solution (msaif) va certainement faire l'affaire. Mais c'est réellement ce qui sera fait dans le contrôle 'Image' en interne. Si vous utilisez un framework Flex, pourquoi éviter d'utiliser le contrôle 'Image' quand son code est plus court comparé à l'utilisation de' Loader' + 'BitmapData' +' Bitmap' + 'UIComponent'? –

1

J'ai glissé ceci sans contrôle d'image J'ai utilisé le concept de décodeur. Voici ci-dessous: Cela a fonctionné.

loader.loadBytes(eizo.idolImage); 

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, 
    function (e:Event):void { 
    var bmpData:BitmapData = new BitmapData(loader.width, loader.height); 
    bmpData.draw(loader); 
    var ui:UIComponent = new UIComponent(); 
    ui.addChild(new Bitmap(bmpData)); 
    canvas0.addChild(ui); 
    } 
);