Форум 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=158694)

Merf 22.06.2011 14:26

JPGEncoder ошибка
 
хочу сохранить картинку из флеша. Воспользовался советом из одной из тем на флешере. Класы подключил енкодер добавил все вроде как должно работать. Но при компиляции выдает такую ошибку

Код:

1046: Type was not found or was not a compile-time constant: BitString.
и ведет на вот такую функцию в енкодере

Код AS3:

private function writeBits(bs:BitString):void
        {
            var value:int = bs.val;
            var posval:int = bs.len-1;
            while ( posval >= 0 ) {
                if (value & uint(1 << posval) ) {
                    bytenew |= uint(1 << bytepos);
                }
                posval--;
                bytepos--;
                if (bytepos < 0) {
                    if (bytenew == 0xFF) {
                        writeByte(0xFF);
                        writeByte(0);
                    }
                    else {
                        writeByte(bytenew);
                    }
                    bytepos=7;
                    bytenew=0;
                }
            }
        }

Что тут не так я понятия не имею, может вы подскажите. Проблема у меня или всетаки в енкодере?

КорДум 22.06.2011 14:28

Не импортировали класс.

Merf 22.06.2011 14:37

Цитата:

Сообщение от КорДум (Сообщение 1005667)
Не импортировали класс.

Может что-то не правильно сделал?

Код AS3:

import com.adobe.images.JPGEncoder

в параметрах публикации указал путь к класу, после вашего совета указал его еще раз, но не помогло

КорДум 22.06.2011 14:41

Нужно импортировать BitString еще, что вы не сделали. Вероятно он лежит в том же пакете.

NikolyA 22.06.2011 14:55

http://www.flasher.ru/forum/showpost...71&postcount=2

ну и можно без сервера:

Код AS3:

import flash.utils.ByteArray;
import flash.net.URLRequestHeader;
import flash.net.URLRequestMethod;
import com.adobe.images.JPGEncoder;
 
private function saveImages(event:MouseEvent):void
                        {
 
                        var temp:BitmapData = new BitmapData(viewer.width, viewer.height);
                        temp.draw(viewer);
 
                        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");
 
                        }

и на кнопку вешаем событие:

Код AS3:

saveBtn.addEventListener(MouseEvent.CLICK, saveImages);


Merf 22.06.2011 16:22

Спасибо вам большое, получилось


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

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