Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.07.2010, 18:59
zemozes вне форума Посмотреть профиль Отправить личное сообщение для zemozes Найти все сообщения от zemozes
  № 11  
Ответить с цитированием
zemozes
 
Аватар для zemozes

Регистрация: Jul 2010
Сообщений: 99
Работает, загружает фото в альбом. mikhailk, спасибо Вам огромное.
Но опять не всё в порядке. Не происходит событие Event.COMPLETE.
То есть не происходит вызов функции обработчика function onPhotos_save(evt:Event)
Хотя в альбом фотку загрузило.

Код AS3:
var sig:String = MD5.hash(viewer_id+"aid="+serverResponse.aid+"api_id="+api_id+
"hash="+serverResponse.hash+"method=photos.save"+"photos_list="+serverResponse.photos_list+
"server="+serverResponse.server+"v=2.0"+secret);
tf.text = tf.text + "\r\n sig="+sig;
var myRequest:URLRequest = new URLRequest(query);
var myLoader:URLLoader = new URLLoader();
var myVariables:URLVariables = new URLVariables();
 
myVariables.api_id = api_id;
myVariables.sig = sig;
myVariables.v = "2.0";
myVariables.aid = serverResponse.aid;
myVariables.server = serverResponse.server;
myVariables.photos_list = serverResponse.photos_list;
myVariables.hash = serverResponse.hash;
myVariables.method = "photos.save";
 
myRequest.method = URLRequestMethod.POST;
myRequest.data = myVariables;
 
function onPhotos_save(evt:Event):void {
//в тектовом поле нету строки method=photos.save=, хотя строка sig=11f70* там присутствует.
//это означает, что эта функция не вызывается, но она должна вызываться, ведь фото загружено в альбом.
tf.text = tf.text + "\r\n method=photos.save=" + evt.currentTarget.loader.data;
}
myLoader.addEventListener(Event.COMPLETE, onPhotos_save);
myLoader.load(myRequest);


Последний раз редактировалось zemozes; 19.07.2010 в 19:01.
Старый 19.07.2010, 19:28
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 12  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
zemozes,
очень тяжелый для восприятия код.

Попробуйте запустить не под IDE, а под дебаговой версией флэш-плеера.

У Вас там, кстати, подтверждение пользователя после получения url для загрузки есть?

Старый 19.07.2010, 19:34
zemozes вне форума Посмотреть профиль Отправить личное сообщение для zemozes Найти все сообщения от zemozes
  № 13  
Ответить с цитированием
zemozes
 
Аватар для zemozes

Регистрация: Jul 2010
Сообщений: 99
Цитата:
Сообщение от mikhailk Посмотреть сообщение
zemozes,
очень тяжелый для восприятия код.

Попробуйте запустить не под IDE, а под дебаговой версией флэш-плеера.

У Вас там, кстати, подтверждение пользователя после получения url для загрузки есть?
>>>очень тяжелый для восприятия код.
Так я ж пробелы перед строками убрал. Всё красиво.

>>>Попробуйте запустить не под IDE, а под дебаговой версией флэш-плеера.
Я не запускаю под IDE, каждый раз жму "Экспорт сборки выпуска",
загружаю вконтакт swf-файл, и захожу на страницу приложения ВК.
Но запускаю для отладки в IDE чтобы посмотреть ошибки,
но ведь под отладкой всегда выдаётся ошибка, что пустой http-адрес для загрузки фотографий.
А когда запускаю в браузере, то в текстовом поле этот адрес не пустой.

>>>У Вас там, кстати, подтверждение пользователя после получения url для загрузки есть?
Что значит "подтверждение пользователя" ? Надо выводить модальное окно с кнопками "да, нет" ?


Последний раз редактировалось zemozes; 19.07.2010 в 19:38.
Старый 19.07.2010, 19:42
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 14  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Рабочий от и до код Если не заработает, то я уже не знаю.
Код AS3:
package
{
 
    import by.typing.vkontakte.ApplicationParameters;
    import by.typing.vkontakte.Vkontakte;
    import by.typing.vkontakte.errors.VkontakteErrorEvent;
    import by.typing.vkontakte.net.PhotoUploader;
 
    import com.adobe.images.JPGEncoder;
 
    import flash.display.BitmapData;
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.events.Event;
 
    public class Sample4 extends Sprite
    {
 
        public function Sample4()
        {
            super();
 
            addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler)
        }
 
        private var vkontakte:Vkontakte;
        private var output:Output;
        private var images:Array = [];
        private var photoLoader:PhotoUploader;
 
        private function addedToStageHandler(event:Event):void
        {
            vkontakte = Vkontakte.getInstance();
            vkontakte.applicationParameters = new ApplicationParameters(stage.loaderInfo.parameters);
            vkontakte.privateKey = "CMEKGkVrDv";
 
            drawAndUpload();
        }
 
        private function drawAndUpload():void
        {
 
            var shape:Shape = new Shape();
            shape.graphics.lineStyle(5, Math.random() * 0x1000000);
            shape.graphics.beginFill(Math.random() * 0x1000000);
            shape.graphics.drawRect(10, 10, 50, 100);
 
            var bmd:BitmapData = new BitmapData(100, 100, false, 0x000000);
            bmd.draw(shape);
 
            images.push(new JPGEncoder(100).encode(bmd));
 
            photoLoader = new PhotoUploader(vkontakte);
            photoLoader.addEventListener(VkontakteErrorEvent.ERROR, errorHandler);
            photoLoader.files = images;
            photoLoader.upload("113938072");
 
        }
 
        private function errorHandler(event:VkontakteErrorEvent):void
        {
 
        }
 
    }
 
}

Старый 19.07.2010, 19:44
zemozes вне форума Посмотреть профиль Отправить личное сообщение для zemozes Найти все сообщения от zemozes
  № 15  
Ответить с цитированием
zemozes
 
Аватар для zemozes

Регистрация: Jul 2010
Сообщений: 99
udaaff, так я проблему с формированием post-запроса и загрузкой фото в фотоальбом решил.
У меня просто не возникает вызова функции onPhotos_save

Старый 19.07.2010, 19:55
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 16  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Если загрузка происходит, должен отрабатывать. Может текст за пределы поля вылазит?
Не могу понять чем вас готовое не устраивает? Добавьте пару обработчиков по загрузке фото и будет вам счастье.
Код AS3:
package
{
 
    import by.typing.vkontakte.ApplicationParameters;
    import by.typing.vkontakte.Vkontakte;
    import by.typing.vkontakte.errors.VkontakteErrorEvent;
    import by.typing.vkontakte.events.LoaderEvent;
    import by.typing.vkontakte.net.PhotoUploader;
 
    import com.adobe.images.JPGEncoder;
 
    import flash.display.BitmapData;
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.events.Event;
 
    public class Sample4 extends Sprite
    {
 
        public function Sample4()
        {
            super();
 
            addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler)
        }
 
        private var vkontakte:Vkontakte;
        private var images:Array = [];
        private var photoLoader:PhotoUploader;
 
        private function addedToStageHandler(event:Event):void
        {
            vkontakte = Vkontakte.getInstance();
            vkontakte.applicationParameters = new ApplicationParameters(stage.loaderInfo.parameters);
            vkontakte.privateKey = "CMEKGkVrDv";
 
            drawAndUpload();
        }
 
        private function drawAndUpload():void
        {
 
            var shape:Shape = new Shape();
            shape.graphics.lineStyle(5, Math.random() * 0x1000000);
            shape.graphics.beginFill(Math.random() * 0x1000000);
            shape.graphics.drawRect(10, 10, 50, 100);
 
            var bmd:BitmapData = new BitmapData(100, 100, false, 0x000000);
            bmd.draw(shape);
 
            images.push(new JPGEncoder(100).encode(bmd));
 
            photoLoader = new PhotoUploader(vkontakte);
            photoLoader.addEventListener(VkontakteErrorEvent.ERROR, errorHandler);
            photoLoader.addEventListener(LoaderEvent.SAVE, saveHandler);
            photoLoader.addEventListener(LoaderEvent.UPLOAD_COMPLETE, uploadCompleteHandler);
            photoLoader.files = images;
            photoLoader.upload("113938072");
 
        }
 
        private function saveHandler(event:LoaderEvent):void
        {
            // очередное изображение загружено
        }
 
        private function uploadCompleteHandler(event:LoaderEvent):void
        {
            // все изображения загружены
        }
 
        private function errorHandler(event:VkontakteErrorEvent):void
        {
 
        }
 
    }
 
}

Старый 19.07.2010, 20:14
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 17  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Сообщение от zemozes Посмотреть сообщение
Но запускаю для отладки в IDE чтобы посмотреть ошибки,
Правильно.
А теперь поставьте у себя debug-плеер (я, например, поставил себе под ИЕ, поскольку самим ИЕ практически не пользуюсь) и запустите под ним.

Дебаг-плеер все равно периодически нужен, так что не помешает.

Старый 20.07.2010, 00:01
zemozes вне форума Посмотреть профиль Отправить личное сообщение для zemozes Найти все сообщения от zemozes
  № 18  
Ответить с цитированием
zemozes
 
Аватар для zemozes

Регистрация: Jul 2010
Сообщений: 99
Вообще ничего не понимаю. Утром, днём и буквально два часа назад картинки с Flickr грузились.
Теперь только одна загрузилась, потом я обновил страницу - загрузилось две, хотя должно загружаться три картинки.
Почистил кеш браузера, отключил и включил wifi на ноуте (осталось станцевать танец с бубном).
Теперь картинки вообще не грузятся.
Код не менял.

Добавлено через 3 минуты
В строке статуса мозиллы вижу "ожидание ответа от " и дальше адрес фликра.
В сетевой статистике вообще всё по нулям, ничего не передаёт и не отдаёт.

Добавлено через 5 минут
Опять обновил страницу - загрузилась одна картинка и всё, а должно быть три картинки.
В строке статуса "ожидание ответа" от фликра.
Когда картинка грузилась, это вызвало всплеск графика сетевой активности,
сейчас график не активен, никакой сетевой активности.

Добавлено через 9 минут
Кликнул по этой одной картинке, она добавилась в альбом.
Обновил страницу с приложением, теперь три картинки, всё нормально.
Ничего не понимаю.


Последний раз редактировалось zemozes; 20.07.2010 в 00:11.
Старый 20.07.2010, 00:48
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 19  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
дебаг-плеер поставьте
дела на 5 минут
если идут какие сбои, он покажет

Старый 20.07.2010, 01:28
zemozes вне форума Посмотреть профиль Отправить личное сообщение для zemozes Найти все сообщения от zemozes
  № 20  
Ответить с цитированием
zemozes
 
Аватар для zemozes

Регистрация: Jul 2010
Сообщений: 99
Картинки то грузятся и добавляются в альбом, но не вызывается функция onPhotos_save.
Гуглил, вот в чём дело http://vapes.na.by/blog/index.php?en...y091028-205926
Цитата:
Я думаю, что каждый, кто делал флеш аплоадер сталкивались с багом https://bugs.adobe.com/jira/browse/FP-1419 , который гласит, что после 30 секунт аплоада POST методом (FileReference.upload()) флеш плеер может перестать получать событие complete. И процесс аплодинга зависал.
Добавлено через 24 минуты
https://bugs.adobe.com/jira/browse/FP-1419

Добавлено через 44 минуты
udaaff, прочитал Ваш код (спасибо, что откликнулись на проблему)
http://www.flasher.ru/forum/showpost...7&postcount=14
и этот
http://www.flasher.ru/forum/showpost...4&postcount=16
Но проблему с загрузкой изображения в виде bytearray я решил
путём использования кода отсюда http://www.flasher.ru/forum/showpost...32&postcount=8 (спасибо mikhailk).
То есть второй этап в загрузке файлов вконтакт я выполнил.
Мне пришёл ответ в формате json, я его распарсил с помощью JSON.decode.

Фото загружается в фотоальбом, это и есть третий этап, отсылка этих json
данных на сервер. Мне уже не надо отправлять post запросом изображение в виде bytearray.
Я отправляю те данные, которые пришли в формате json,
в фотоальбоме появляется фото, но в документации написано,
что после выполнения запроса photos.save я получу
Цитата:
Возвращает массив объектов с загруженными фотографиями, каждый из которых имеет поля pid, aid, owner_id, src, src_big, src_small, created.
Проблема как раз в том, что я не могу получить этот массив объектов.
Событие Event.COMPLETE не происходит.

UPD:
когда писал этот текст. то решил опять попробывать выполнить приложение,
теперь событие Event.COMPLETE возникло.

Добавлено через 55 минут
Всё, решил проблему.
Не рабочий код
Код AS3:
tf.text = tf.text + "\r\n method=photos.save=" + evt.currentTarget.loader.data;
Рабочий код, тут событие Event.COMPLETE возникает.
Код AS3:
tf.text = evt.currentTarget.data;
Спасибо всем тем, кто откликнулся на проблему с post-запросом.


Последний раз редактировалось zemozes; 20.07.2010 в 02:33.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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