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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.03.2013, 04:13
babuia вне форума Посмотреть профиль Отправить личное сообщение для babuia Найти все сообщения от babuia
  № 1  
Ответить с цитированием
babuia

Регистрация: Jul 2012
Сообщений: 17
По умолчанию FileReference - замена содержимого в свойстве data.

Здравствуйте.
Есть ли способ заменить содержимое в свойстве data объекта FileReference, не смотря на то что оно Read Only?
С помощью FileReference загружается картинка, редактируем, и вот теперь нужно отправить редактированную версию на сервер.
Пробовал воспользоваться методом writeBytes, ошибку НЕ вызывает, но изменения не применяются.

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

Если бы не это условие то можно было бы воспользоваться URLLoader-ом, он позволяет отправить на сервер редактированную версию но не позволяет получать промежуточный feedback, умеет только 0% и 100%.

Как можно отправить в данном случае редактированную версию изображения не потеряв прогрессбар?

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
FlashPlayer с версии 11 поддерживает 2 полезных штуки для сокетов:
- количество байт в буфере отправки
- событие выгрузки данных их буфера отправки в сеть

Однако, это вам поможет только в случае с сокетом (то есть придется заморочиться и отправлять данные по порту выше 1024 на специальный сервис, который эти файлы будет принимать). Не слишком сложно, но и не тривиально.

Есть и другое решение:
- отправляем запрос на сервер, который вернет нам специальный ключ (некую строку)
- отправляем данные в запросе обычным URLLoader'ом с указанием в одном из параметров ключа, полученного на предыдущем шаге
- пока URLLoader выгружающий файл не отправил событие Event.COMPLETE, постоянно дергаем специальный адрес на сервере другим URLLoader'ом и получаем в ответ статус текущией загрузки (опять же по ключу).

Тут тоже придется заморочиться с сервером, но это уже попроще да и другие решения для Flash вряд ли существуют.
__________________
...вселенская грусть

Старый 01.03.2013, 12:33
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 3  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
1 картинка отправляется довольно быстро, так ли важен прогресс бар?
__________________
Дети не должны знать о своих родителях

Старый 01.03.2013, 16:08
babuia вне форума Посмотреть профиль Отправить личное сообщение для babuia Найти все сообщения от babuia
  № 4  
Ответить с цитированием
babuia

Регистрация: Jul 2012
Сообщений: 17
#gloomyBrain У нас нет доступа к серверам, отправляется только по 80 порту.

Добавлено через 47 секунд
Цитата:
1 картинка отправляется довольно быстро, так ли важен прогресс бар?
Да, это важно.

Старый 01.03.2013, 16:23
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 5  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Если картинок несколько, то после отправки первой, вы можете показать пользователю приблизительно рассчитанное время для отправки всех остальных.
__________________
Дети не должны знать о своих родителях

Старый 01.03.2013, 16:44
babuia вне форума Посмотреть профиль Отправить личное сообщение для babuia Найти все сообщения от babuia
  № 6  
Ответить с цитированием
babuia

Регистрация: Jul 2012
Сообщений: 17
Цитата:
Сообщение от Tails Посмотреть сообщение
Если картинок несколько, то после отправки первой, вы можете показать пользователю приблизительно рассчитанное время для отправки всех остальных.
Да, тоже обдумываю вариант отправки через URLoader, где само промежуточное значение вычислялось с помощью интерполяцией.

Но может все таки есть способ отправить?
К примеру если можно было бы записать в data объекта FileReference-а, то можно было бы загрузить с прогрессом.
И тут задача превращается в "Как обойти Read Only".


Последний раз редактировалось babuia; 01.03.2013 в 17:07.
Старый 02.03.2013, 02:01
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 7  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
babuia,
Использовать FileReference для отправки модифицированных файлов у вас не получиться, флажок read-only никак не обойти, этот класс зашит в флеш плеер конечного пользователя. Сделано это, видимо, из-за каких-то соображений по безопасности.

У URLoader'а есть же событие progress, оно не отправляется при отправке данных?
__________________
Дети не должны знать о своих родителях

Старый 02.03.2013, 11:21
babuia вне форума Посмотреть профиль Отправить личное сообщение для babuia Найти все сообщения от babuia
  № 8  
Ответить с цитированием
babuia

Регистрация: Jul 2012
Сообщений: 17
Цитата:
У URLoader'а есть же событие progress, оно не отправляется при отправке данных?
Оно отправляется, но это прогресс о полученных данных, то-есть в случае если сервер на наш запрос ответит, то во время принятия ответа будет вызываться событие progress, и вернет именно количество принятых байт принадлежащих ответу, сам принятый ответ хранится в data.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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