Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Получить картинку во Flash (http://www.flasher.ru/forum/showthread.php?t=207876)

Anig 14.05.2014 15:15

Получить картинку во Flash
 
Здравствуйте дорогие!
Помогите пожалуйста с вопросом:
Нужно во флеш приложении (подобном игре) получить изображение, да так, чтоб клиент мог его скачать на свой компьютер в виде jpg файла например.
1.Как получить jpg из того что есть во флеш окне?
2.Как это дать возможность пользователю скачать?

Помогите пожалуйста.

illuzor 14.05.2014 15:29

Цитата:

1.Как получить jpg из того что есть во флеш окне?
http://help.adobe.com/ru_RU/FlashPla...ata.html#draw()
http://help.adobe.com/ru_RU/FlashPla...a.html#encode()
Цитата:

2.Как это дать возможность пользователю скачать?
http://help.adobe.com/ru_RU/FlashPla...nce.html#save()

Anig 14.05.2014 15:53

Огромное спасибо за быстрый ответ и ссылки.
Но у меня осталось несколько вопросов.
1.Как с BitmapData преварщать в картинку именно то, что сейчас на экране Flash?
2.Как скачатз файл с использованием FileReference, которого нет? Его надо сохранить куда-то на сервере потом скачивзть? Или можно полученное с использованием BitmapData сразу передать как аргумент FileReference?

И если можно мааааленький примерчик, на нем быстрее пойму, а так придется эксперементировать, учиться, а времени совсем в обрез. Заранее огромное спасибо за помощь!

silin 14.05.2014 17:09

Код AS3:

package 
{
        import flash.display.BitmapData;
        import flash.display.JPEGEncoderOptions;
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.net.FileReference;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.utils.ByteArray;
 
 
        public class Main extends Sprite
        {
 
                public function Main():void
                {
                        // Рисуем что-то
                        for (var i:int = 0; i < 100; i++)
                        {
                                graphics.lineStyle(2, Math.random() * 0xFFFFFF);
                                graphics.lineTo(Math.random() * stage.stageWidth, Math.random() * stage.stageHeight);
 
                        }
                        // кнопка
                        var but:TextField = new TextField();
                        but.autoSize = TextFieldAutoSize.LEFT;
                        but.border = true;
                        but.background = true;
                        but.backgroundColor = 0xFFFF80;
                        but.text = "save jpg";
                        but.selectable = false;
                        addChild(but);
                        but.addEventListener(MouseEvent.CLICK, but_click);
                }
 
                private function but_click(e:MouseEvent):void
                {
                        var bmd:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
                        bmd.draw(stage);
                        var ba:ByteArray = bmd.encode(bmd.rect, new JPEGEncoderOptions());// FP 11.3+
                        var file:FileReference = new FileReference();
 
                        file.save(ba, "test.jpg");
 
                }
 
        }
 
}


Anig 14.05.2014 17:31

Огромное вам спасибо!!!!

Agni 09.10.2014 02:24

строчка
Код AS3:

import flash.display.JPEGEncoderOptions;

правильная?
ругается на неё и JPEGEncoderOptions не находит в flash.display

если ниже FP 11.3,то эта задача решаема?

illuzor 09.10.2014 02:56

Цитата:

если ниже FP 11.3,то эта задача решаема?
да. Можно взять сторонний энкодер, например http://www.blooddy.by/ru/crypto/

Agni 09.10.2014 03:13

спасибо

просто забрал эти классы:
https://github.com/mikechambers/as3c...m/adobe/images


Часовой пояс GMT +4, время: 00:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.