![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2010
Сообщений: 99
|
Работает, загружает фото в альбом. mikhailk, спасибо Вам огромное.
Но опять не всё в порядке. Не происходит событие Event.COMPLETE. То есть не происходит вызов функции обработчика function onPhotos_save(evt:Event) Хотя в альбом фотку загрузило. 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. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
zemozes,
очень тяжелый для восприятия код. Попробуйте запустить не под IDE, а под дебаговой версией флэш-плеера. У Вас там, кстати, подтверждение пользователя после получения url для загрузки есть? |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 99
|
Цитата:
Так я ж пробелы перед строками убрал. Всё красиво. >>>Попробуйте запустить не под IDE, а под дебаговой версией флэш-плеера. Я не запускаю под IDE, каждый раз жму "Экспорт сборки выпуска", загружаю вконтакт swf-файл, и захожу на страницу приложения ВК. Но запускаю для отладки в IDE чтобы посмотреть ошибки, но ведь под отладкой всегда выдаётся ошибка, что пустой http-адрес для загрузки фотографий. А когда запускаю в браузере, то в текстовом поле этот адрес не пустой. >>>У Вас там, кстати, подтверждение пользователя после получения url для загрузки есть? Что значит "подтверждение пользователя" ? Надо выводить модальное окно с кнопками "да, нет" ? Последний раз редактировалось zemozes; 19.07.2010 в 19:38. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Рабочий от и до код
Если не заработает, то я уже не знаю.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 { } } } |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 99
|
udaaff, так я проблему с формированием post-запроса и загрузкой фото в фотоальбом решил.
У меня просто не возникает вызова функции onPhotos_save |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Если загрузка происходит, должен отрабатывать. Может текст за пределы поля вылазит?
Не могу понять чем вас готовое не устраивает? Добавьте пару обработчиков по загрузке фото и будет вам счастье. 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 { } } } |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Правильно.
А теперь поставьте у себя debug-плеер (я, например, поставил себе под ИЕ, поскольку самим ИЕ практически не пользуюсь) и запустите под ним. Дебаг-плеер все равно периодически нужен, так что не помешает. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 99
|
Вообще ничего не понимаю. Утром, днём и буквально два часа назад картинки с Flickr грузились.
Теперь только одна загрузилась, потом я обновил страницу - загрузилось две, хотя должно загружаться три картинки. Почистил кеш браузера, отключил и включил wifi на ноуте (осталось станцевать танец с бубном). Теперь картинки вообще не грузятся. Код не менял. Добавлено через 3 минуты В строке статуса мозиллы вижу "ожидание ответа от " и дальше адрес фликра. В сетевой статистике вообще всё по нулям, ничего не передаёт и не отдаёт. Добавлено через 5 минут Опять обновил страницу - загрузилась одна картинка и всё, а должно быть три картинки. В строке статуса "ожидание ответа" от фликра. Когда картинка грузилась, это вызвало всплеск графика сетевой активности, сейчас график не активен, никакой сетевой активности. Добавлено через 9 минут Кликнул по этой одной картинке, она добавилась в альбом. Обновил страницу с приложением, теперь три картинки, всё нормально. Ничего не понимаю. Последний раз редактировалось zemozes; 20.07.2010 в 00:11. |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
дебаг-плеер поставьте
дела на 5 минут если идут какие сбои, он покажет |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 99
|
Картинки то грузятся и добавляются в альбом, но не вызывается функция onPhotos_save.
Гуглил, вот в чём дело http://vapes.na.by/blog/index.php?en...y091028-205926 Цитата:
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 я получу Цитата:
Событие Event.COMPLETE не происходит. UPD: когда писал этот текст. то решил опять попробывать выполнить приложение, теперь событие Event.COMPLETE возникло. Добавлено через 55 минут Всё, решил проблему. Не рабочий код Рабочий код, тут событие Event.COMPLETE возникает. Спасибо всем тем, кто откликнулся на проблему с post-запросом. Последний раз редактировалось zemozes; 20.07.2010 в 02:33. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|