Показать сообщение отдельно
Старый 29.10.2007, 18:26
IlVin вне форума Посмотреть профиль Отправить личное сообщение для IlVin Найти все сообщения от IlVin
  № 1  
Ответить с цитированием
IlVin

Регистрация: Oct 2007
Сообщений: 1
По умолчанию Сохранить картинку на сервер в AS2.0

Здравствуйте, коллеги!

Случился у меня секс по поводу "заставить AS2 сохранить картинку на сервер". Решение есть, но оно какое-то кривоватое, точнее не совсем прямое...
Основная цель сохранялки - минимизировать трафик между флешкой и сервером.
Пошел "в лоб" - припомнил, что BASE64 просачиывается через стандартный urlencode и решил закодировать данные картинки в BASE64 и пост запросом передать на сервер... Выигрыш нешуточный планируется - увеличение трафика всего на 33% (вместо стандартных в 2 раза) !

Код:
// Кодируем хозяйство в BASE64
var b64s:String = new String('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*-');
var b64a:Array  = b64s.split('');


var rbw:Number=resultBtp.width;
var rbh:Number=resultBtp.height;

// Запихиваем в массив ширину и высоту
var sBMP:Array = new Array();
sBMP.push( b64a[(rbw>>6)&0x3f]+b64a[(rbw&0x3f)]+b64a[(rbh>>6)&0x3f]+b64a[(rbh&0x3f)] );

for(var i=0;i<rbw;i++){
  for(var j=0;j<rbh;j++){
    var t:Number = resultBtp.getPixel32(i,j) & 0x00FFFFFF;
    sBMP.push( b64a[(t>>18)&0x3f]+b64a[(t>>12)&0x3f]+b64a[(t>>6)&0x3f]+b64a[t&0x3f] );
  }
}

...

outData.data = "<pic>"+sBMP.join('')+"</pic>";
outData.sendAndLoad(_root.scripts.imgsaver,inData,"POST");
Запускаем, смотрим и обламываемся
Символы '*-' не проходят флешовый urlencoder (а когда сохраняется белое, получаются толпы этих символов ).

Внимание вопрос:
Как в AS2 отправить POST запрос и сделать так, чтобы параметры не urlencod'ились ?

С превеликим нетерпением жду решения или ваших соображений по этой шишковатой теме.