flex 核心 ByteArray 图像

问题描述 投票:0回答: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();

现在如何将字节变量添加到画布?例如 var canvas:Canvas = new Canvas(); canvas.addChild(字节); 是否可以将 ByteArray 添加到画布上?

arrays image apache-flex
2个回答
1
投票

我在没有图像控制的情况下解决了这个问题,我使用了解码器概念。如下: 成功了。

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

0
投票

不,你不能。这是因为

ByteArray
本身无法显示,因为 Flash Player 不知道它是什么。

在您的情况下,您将在

Canvas
上显示“test.jpg”图像,对吗?您只需将
Image
控件的
source
属性设置为加载的
ByteArray
对象并将其添加到
Canvas
即可。请参阅 http://livedocs.adobe.com/flex/3/langref/mx/controls/Image.html

© www.soinside.com 2019 - 2024. All rights reserved.