Как скопировать что-то в виде вставляемого растрового изображения во flash? - PullRequest
1 голос
/ 23 февраля 2010

Как скопировать что-то как вставляемое растровое изображение во флэш-память?

Итак, у меня есть простой проект mxml - пустая страница с панелью на нем.

Я хочу иметь возможность выбрать какой-либо регион на своей панели и каким-то образом скопировать его в виде растрового изображения, которое можно вставить в фотошоп, Word и другие программы.

Как это сделать? (библиотеки, статьи и т. д.)

Редактировать - Это может быть невозможно в FP10, но в FP 10.1 это возможно =) См. Справочник по BETA ActionScript 3.0 для Adobe Flash Platform 10.1 . Не самым лучшим способом, но каким бы то ни было образом

  • первое использование ClipboardFormats - HTML_FORMAT (который IS поддерживается по FP10)
  • Создать шаблон HTML
  • Вставить ваши BitmapData в него (используйте кодеры)
  • Теперь вы можете вставить его в Word и некоторые другие программы

1 Ответ

4 голосов
/ 23 февраля 2010

Вы не можете сделать это с Flex / Flash, но вы можете сделать снимок и сохранить его в файловой системе, импортировать это изображение в фотошоп и т. Д. Вот пример:

<?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, вы можете сохранить растровые изображения в буфере обмена . Проверьте это расширенное приложение AIR Clipboard .

Вы также можете сделать следующее:

(не уверен, если это возможно)

Похоже, вы даже не можете копировать изображения в буфер обмена в JavaScript. Если вы на Mac, вы можете использовать это: Command+Ctrl+Shift+4.

Надеюсь, это поможет, Lance

...