如何在flash中复制一些可用的位图?

时间:2010-02-23 19:49:04

标签: flex flash actionscript-3 bitmap mxml

如何在Flash中将某些东西复制为可用的位图?

所以我有一个简单的mxml项目 - 空页面上有一个面板。

我希望能够在我的面板上选择一些区域并将其复制为可以映射到photoshop,word和其他程序的位图。

怎么做这样的事情? (图书馆,文章等)

编辑 - 在FP10中可能无法实现,但在FP 10.1中你可以拥有它=) 见BETA ActionScript 3.0 Reference for the Adobe Flash Platform 10.1 不是以最好的方式,但任何方式都是如此

  • 首次使用ClipboardFormats - HTML_FORMAT(支持 IS 由FP10)
  • 创建一些模板HTML
  • 将BitmapData嵌入其中(使用编码器)
  • 现在您可以将其粘贴到Word和其他一些程序中

1 个答案:

答案 0 :(得分:4)

你不能用Flex / Flash做到这一点,但你可以拍摄快照并将其保存到文件系统并将该图像导入到photoshop等。这是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.graphics.codec.PNGEncoder;
            import flash.display.BitmapData;

            protected function saveAsPNG(target:Sprite, path:String):void
            {
                var bitmapData:BitmapData = new BitmapData(target.width, target.height);
                bitmapData.draw(target);

                var image:PNGEncoder = new PNGEncoder();
                var byteArray:ByteArray = image.encode(bitmapData);

                var file:FileReference = new FileReference();
                file.save(byteArray, path);
            }
        ]]>
    </mx:Script>

    <mx:Panel width="100%" height="100%">
        <mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
            <mx:Panel width="50%" height="50%"/>
            <mx:Panel width="50%" height="50%"/>
        </mx:HBox>
    </mx:Panel>

    <mx:Button label="Save As.." click="saveAsPNG(this, 'MyImage.png')"/>

</mx:Application>

如果您使用AIR,则可以save Bitmaps to the Clipboard。查看此高级AIR Clipboard Application

您也可以执行以下操作:

(不确定是否可能)

看起来你甚至无法用javascript将图像复制到剪贴板。如果您使用的是Mac,则可以使用:Command+Ctrl+Shift+4

希望有所帮助, 兰斯