загрузить изображение, а затем поделиться без сохранения файла на Flex с помощью sharedObject или что-нибудь? - PullRequest
3 голосов
/ 10 июня 2011

В настоящее время я работаю в чате с загрузкой изображения и передачей его.Проблема в том, что я могу загрузить и отобразить изображение, но не могу поделиться им с другой стороной.

Вот код:

public var photo:FileReference = new FileReference();

protected function crop_clickHandler(event:MouseEvent):void
{
    var f:FileFilter = new FileFilter("Image", "*.jpg;*.jpeg;*;*.gif;*.png;*");
    photo.addEventListener(Event.SELECT, fileSelected);
    photo.browse([f]);
}

private function fileSelected(evt:Event):void
{
    photo.addEventListener(Event.COMPLETE,loadCompleted);
    photo.load();
}

private var loader : Loader = new Loader();

private function loadCompleted(evt:Event):void
{
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, getBitmapData);
    loader.loadBytes(photo.data);
}

private function getBitmapData(event:Event):void
{
    var content:* = loader.content;
    var BMPData:BitmapData = new BitmapData(content.width,content.height);

    var UIMatrix:Matrix = new Matrix();
    BMPData.draw(content, UIMatrix);

    var imgObj:Object = new Object();
    imgObj.client = username.text;
    imgObj.img = BMPData;
    imgSO.setProperty("image",imgObj);
}           

private function imagehandler(SEvt:SyncEvent):void
{
    if(imgSO.data.image)
    {
        var imgObj:Object = imgSO.data.image;
        var p:ParagraphElement = new ParagraphElement();
        var image:InlineGraphicElement = new InlineGraphicElement();

        image.source = new Bitmap(imgObj.img);
        p.addChild(senderName(imgObj.client));
        p.addChild(image);
        chatWindow.textFlow.addChild(p);
    }   
}

1 Ответ

0 голосов
/ 10 июня 2011

Если вы нацелены на Flash Player 10, вы можете попробовать использовать класс FileReference.Быстрый (непроверенный) пример:

protected function exportImage():void
{
  var imageToSave:ImageSnapshot = ImageSnapshot.captureImage(image, 300, new PNGEncoder());
  var file:FileReference = new FileReference();
  file.save(imageToSave.data, "my_image_name.png");
}
...