Загрузка изображения, draw не работает с uiloader

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
komar0ff
Сообщения: 12
Зарегистрирован: 26 июл 2012, 20:26

Re: Загрузка изображения, draw не работает с uiloader

Сообщение komar0ff »

Проверил еще раз, при запуске из флеша все работает, файл отправляется. При запуске из вк не работает.

Версия 1. Если нет imagesave.img (uiloader'а), то все грузит как надо, и из вк тоже.

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

  var bmd:BitmapData=new BitmapData(imagesave.width,imagesave.height, false); bmd.draw(imagesave); //imagesave - мувиклип var  _fileData = new JPGEncoder(100).encode(bmd);  var mll:MultipartURLLoader = new MultipartURLLoader();//далее я отправляю файл в виде bytearray var _fileContentType:String = 'image/jpeg'; mll.addFile(_fileData, "file.jpg", "file1", _fileContentType); mll.load(urlload);//urlload - переменная, полученная из api метода photos.getUploadServer  mll.addEventListener(Event.COMPLETE, function(event:Event):void {   ....  }) 
Версия 2. Если в imagesave добавить uiloader, то при запуске из вк ничего не работает:

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

 imagesave.img.source = "http://xxxxx.jpg"; // адрес изображения, мой сервер, crossdomain.xml в порядкеimagesave.img.addEventListener(Event.COMPLETE, completeLoadImg);// imagesave - мувиклип,  img - UILoaderfunction completeLoadImg(e:Event){ var bmd:BitmapData=new BitmapData(imagesave.width,imagesave.height, false); bmd.draw(imagesave); //Вот здесь возникает ошибка var  _fileData = new JPGEncoder(100).encode(bmd);  var mll:MultipartURLLoader = new MultipartURLLoader();//далее я отправляю файл в виде bytearray var _fileContentType:String = 'image/jpeg'; mll.addFile(_fileData, "file.jpg", "file1", _fileContentType); mll.load(urlload);//urlload - переменная, полученная из api метода photos.getUploadServer  mll.addEventListener(Event.COMPLETE, function(event:Event):void {   ....  })} 
Попробывал передавать в JPGEncoder данные из UILoader'а напрямую, без создания BitmapData и draw(), результат тот же:

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

 imagesave.img.source = "http://xxxxx.jpg"; // адрес изображения, мой сервер, crossdomain.xml в порядкеimagesave.img.addEventListener(Event.COMPLETE, completeLoadImg);// imagesave - мувиклип, в img - UILoaderfunction completeLoadImg(e:Event){  var _fileData = new JPGEncoder(100).encode(imagesave.img.content.bitmapData);  var mll:MultipartURLLoader = new MultipartURLLoader();//далее я отправляю файл в виде bytearray var _fileContentType:String = 'image/jpeg'; mll.addFile(_fileData, "file.jpg", "file1", _fileContentType); mll.load(urlload);//urlload - переменная, полученная из api метода photos.getUploadServer  mll.addEventListener(Event.COMPLETE, function(event:Event):void {   ....  })} 
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Загрузка изображения, draw не работает с uiloader

Сообщение Alazaur »

Вы перед всей этой радостью пропишите:

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

Security.loadPolicyFile("http://ваш_сайт.ru/crossdomain.xml");
глядишь и заработает :D
komar0ff
Сообщения: 12
Зарегистрирован: 26 июл 2012, 20:26

Re: Загрузка изображения, draw не работает с uiloader

Сообщение komar0ff »

Alazaur, к сожалению не заработало :D
Нашел такую же проблему:
http://www.flasher.ru/forum/showthread.php?t=181992
Автор разобрался вроде, написал ему, надеюсь ответит.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Загрузка изображения, draw не работает с uiloader

Сообщение Alazaur »

Вот так у меня всегда работает :D

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

Security.loadPolicyFile("http://ваш_сайт.ru/crossdomain.xml");var loader:Loader = new Loader();loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedImage);loader.load(new URLRequest("http://ваш_сайт.ru/картинка.jpg")); function loadedImage(e:Event):void {    e.target.removeEventListener(Event.COMPLETE, loadedImage);    var img:Bitmap = e.target.content as Bitmap;    var btmimage:BitmapData = new BitmapData(img.width, img.height);    btmimage.draw(img);    var fileData:ByteArray = new JPGEncoder(100).encode(btmimage);    //Ну и можно отправлять}
komar0ff
Сообщения: 12
Зарегистрирован: 26 июл 2012, 20:26

Re: Загрузка изображения, draw не работает с uiloader

Сообщение komar0ff »

Alazaur, Спасибо огромное! Работает!
Видимо дело в loadPolicyFile, я когда проверял затупил немного и пробовал на нерабочем коде :D
Спасибо!
Ответить