Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с JPGEncoder (http://www.flasher.ru/forum/showthread.php?t=213594)

Popop 16.11.2016 13:14

Проблема с JPGEncoder
 
Делаю рисовалку с сохранением в jpg.
Код AS3:

import fl.controls.ColorPicker;
import fl.events.ColorPickerEvent;
import flash.utils.ByteArray;
import flash.net.URLRequestHeader;
import flash.net.URLRequestMethod;
import com.adobe.images.JPGEncoder;
var shape:Shape = new Shape();
var myColorPicker:ColorPicker = new ColorPicker();
myColorPicker.addEventListener(ColorPickerEvent.CHANGE, changeHandler);
myColorPicker.move(0, 0);
addChild(myColorPicker);
var mycolor = 0x000000;
var siz = 10;
function changeHandler(event:ColorPickerEvent)
{
        var mycolor = "0x" + myColorPicker.hexValue;
}
panels.clean.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
 
function fl_MouseClickHandler(event:MouseEvent):void
{
        shape.graphics.clear();
}
panels.plus.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler2);
 
function fl_MouseClickHandler2(event:MouseEvent):void
{
        siz +=  5;
}
panels.minus.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler3);
 
function fl_MouseClickHandler3(event:MouseEvent):void
{
        siz -=  5;
}
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(e:Event):void
{
        panels.suze.text = siz;
        var mycolor = "0x" + myColorPicker.hexValue;
        shape.graphics.lineStyle(siz,mycolor,10);
        drawing.addChild(shape);
        var isMouseDouwn:Boolean = false;
        stage.addEventListener(MouseEvent.MOUSE_MOVE, funcMouseMove);
        stage.addEventListener(MouseEvent.MOUSE_DOWN, funcMouseDown);
        stage.addEventListener(MouseEvent.MOUSE_UP, funcMouseUP);
 
        function funcMouseMove(e:MouseEvent):void
        {
                if (isMouseDouwn)
                {
                        shape.graphics.lineTo(mouseX, mouseY);
                }
        }
        function funcMouseDown(e:MouseEvent):void
        {
                isMouseDouwn = true;
                shape.graphics.moveTo(mouseX, mouseY);
        }
        function funcMouseUP(e:MouseEvent):void
        {
                isMouseDouwn = false;
        }
}
 
function saveImages(event:MouseEvent):void
{
 
        var temp:BitmapData = new BitmapData(drawing.width,drawing.height);
        temp.draw(drawing);
 
        var image = new Bitmap(temp);
        var jpgimage:JPGEncoder = new JPGEncoder(256);
        var ba:ByteArray = jpgimage.encode(temp);
        var save:FileReference = new FileReference();
        save.save(ba, "image.jpg");
 
}
saveBtn.addEventListener(MouseEvent.CLICK, saveImages);

При публикации вылетают ошибки:
Код:

1172: Не удалось найти определение com.adobe.images:JPGEncoder.
Что делать?

caseyryan 16.11.2016 13:18

добавить в проект библиотеку, содержащую com.adobe.images.JPGEncoder
По умолчанию AS3 ее не содержит. Найти сам файл JPGEncoder можно здесь

Popop 16.11.2016 13:23

Извиняюсь за глупые вопросы, но как добавить библиотеку?

caseyryan 16.11.2016 14:02

Относительно главного класса (либо fla файла, раз уж проект пишется в кадрах) нужно создать, в данном случае, такую структуру папкок: com/adobe/images
и в папку images нужно положить этот класс

illuzor 16.11.2016 14:10

Не пользуйтесь этим устаревшим и тормозным способом. Уже давно есть нативная поддержка jpeg/png кодирования


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

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