Загрузка фото в альбом

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
fly
Сообщения: 26
Зарегистрирован: 07 ноя 2009, 21:43

Загрузка фото в альбом

Сообщение fly »

Как Bitmap закодировать в ByteArray ?
Юнир
Сообщения: 45
Зарегистрирован: 14 дек 2010, 12:17

Re: Загрузка фото в альбом

Сообщение Юнир »

разобрался?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Загрузка фото в альбом

Сообщение Александр »

Код: Выделить всё

            var bitmap_data:BitmapData = new BitmapData(canvas_mc.width,canvas_mc.height);            bitmap_data.draw(canvas_mc);            var byte_arr:ByteArray = PNGEncoder.encode(bitmap_data);
Нужен PNGEncoder.as

Или

Код: Выделить всё

            var byte_arr:ByteArray = JPGEncoder.encode(bitmap_data);
Тогда нужен JPGEncoder.as
Юнир
Сообщения: 45
Зарегистрирован: 14 дек 2010, 12:17

Re: Загрузка фото в альбом

Сообщение Юнир »

Спасибо! Я так и делал, оказалось, что проблема во Flash Player в Google Chrome, он что то глючит, в другом браузере оказывается работает. Вот только при отправке в альбом выдает ошибку Invalid hash.
Вот код.

Код: Выделить всё

        private function onScreenButClicked(e:MouseEvent):void        {            var _fileData:ByteArray;             var _fileContentType:String = 'image/jpeg';            var codeEx:String = '';            var myAID:int = 0;            if (myAID == 0)            {                codeEx += 'var a=API.photos.createAlbum({"title":"1","comment_privacy":3,"description":"","privacy":3}).aid;';            }            else            {                codeEx += 'var a=' + myAID.toString() + ';';            }            codeEx += 'return API.photos.getUploadServer({"aid":a,"save_big":1});';            apiVK.api('execute', { code:codeEx}, function(data: Object):void {                         _upload_url = data['upload_url'].toString();                                var bmd:BitmapData=new BitmapData(stage.width, stage.height, false); //--создаем bitmapdata                bmd.draw(stage);                                var jpg:PNGEncoder = new PNGEncoder();                 _fileData = jpg.encode(bmd);                                var mll:MultipartURLLoader = new MultipartURLLoader();                mll.addEventListener(Event.COMPLETE, function(event:Event):void {                    event.currentTarget.removeEventListener(event.type, arguments.callee);                    savePhotos(parseServerAck(event.currentTarget.loader.data as String));                });                         mll.addFile(_fileData, "file.png", "file1");                mll.load(_upload_url);                            }, onApiRequestFail);                                                                    }                private function parseServerAck(serverAck:String):* {            var result:* = new Object;            for each(var pair:String in serverAck.split(/\s*[{},]\s*/)) {                var tmp:Array = pair.split(/\s*[:"]\s*/);//Чтоб все красным не было"                if (  (tmp[1] == "server")                    || (tmp[1] == "photos_list")                    || (tmp[1] == "aid")                    || (tmp[1] == "hash")) {                    result[tmp[1]] = tmp[4];                }            }            return result;                  }        private function savePhotos(serverAck:*):void {                 var variables:URLVariables = new URLVariables;            for(var key:String in serverAck) {                variables[key] = serverAck[key];            }            savePhotosVk(variables.aid, variables.server, variables.photos_list, variables.hash);        }                private function savePhotosVk(this_aid:Number, this_server:String, this_photos_list:String, this_hash:String):void {            console.appendText( this_aid.toString() + ' ,server: ' + this_server + ' ,phlst: ' + this_photos_list + ' ,hash: ' + this_hash + '\n');            apiVK.api('savePhotos',{ aid:this_aid, server:this_server, photos_list:this_photos_list, hash:this_hash},function(data:Object):void{                console.appendText(data.toString() + '\n');            }, onApiRequestFail);                    }        private function onApiRequestFail(data: Object): void {            console.appendText("Error: "+data.error_msg+"\n");            trace(data);        } 
Где console:TextField. В ней выводится
125771204 ,server: 11160 ,phlst: 45c7fbfcb2 ,hash: e340b66f968c4742d34b4ca41cf
Error: Invalid hash
_fileContentType делал 'image/jpeg' и 'image/png' и без него и использовал и PNGEncoder и JPEGEncoder. Экспериментировал в общем
Через FileReference на компьютер нормально сохраняет, а в альбом не загружает.
Если здесь поможете буду очень признателен
Юнир
Сообщения: 45
Зарегистрирован: 14 дек 2010, 12:17

Re: Загрузка фото в альбом

Сообщение Юнир »

неужели никто не сталкивался?
Юнир
Сообщения: 45
Зарегистрирован: 14 дек 2010, 12:17

Re: Загрузка фото в альбом

Сообщение Юнир »

Может кто-то просто скинет исходник по сохранению скриншотов в альбом?
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Загрузка фото в альбом

Сообщение Евгений »

Урок бы кто-нибудь сделал) Я бы был доволен) ;)

Один хороший человек обещал сделать, http://flapps.ru/forum/topic260-10.html#p10121 но так и не сделал(
Ответить