![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2013
Сообщений: 2
|
Задача:
Искал везде но не нашел конкретное решение этой задачи. Я недавно начал изучать AS3 прошу строго не судить. package { //import (все необходимые классы) public class Main extends MovieClip { private var URLRequest:URLRequest; private var file:FileReference; private var bmp:BitmapData; private var loader:Loader; public function Main():void { loader = new Loader(); URLRequest = new URLRequest(); URLRequest.url = "upload.php"; URLRequest.method = URLRequestMethod.POST; file = new FileReference(); file.addEventListener(Event.SELECT, select); browse_btn.addEventListener(MouseEvent.CLICK, browse); } // выбрать файл public function browse(e):void { var filter:FileFilter = new FileFilter('Изображения: (*.jpg, *.jpeg, *.gif, *.png)','*.jpg;*.jpeg;*.gif;*.png'); file.browse([filter]); } // загрузить изображение во флэш public function select(e):void { file.addEventListener(Event.COMPLETE, fileLoaded); file.load(); } public function fileLoaded(e):void { loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgResize); //какой вариант лучше использовать ? loader.loadBytes(e.target.data); // или loader.loadBytes(file.data); } // изменить размер изображения public function imgResize(e):void { // какой вариант использовать ? loader.width = 300; loader.scaleY = loader.scaleX; // или bmp:BitmapData = BitmapData(loader.traget.content as Bitmap); bmp.width = 300; bmp.scaleY = bmp.scaleX; upload(); } // отправка изображения на сервер public function upload():void { file.upload(); // не срабатывает так как до этого было вызвано load(); } } } Буду очень благодарен за конкретные примеры с кодом. |
|
|||||
|
[+4 24.04.13]
[+4 20.04.13] Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
|
public function upload():void { file.upload(); // не срабатывает так как до этого было вызвано load(); } вовторых тема уже обсуждалась http://www.flasher.ru/forum/showthread.php?t=201974 |
|
|||||
|
Регистрация: Jul 2013
Сообщений: 2
|
Сделал так:
Были проблемы с классом JPEGEncoder. Нашёл рабочий JPEGEncoder http://www.bytearray.org/?p=775 package { import flash.display.MovieClip; import flash.net.URLRequest; import flash.net.URLLoader; import flash.net.FileReference; import flash.display.Loader; import flash.display.BitmapData; import flash.display.Bitmap; import flash.events.Event; import flash.net.FileFilter; import flash.events.MouseEvent; import flash.net.URLRequestMethod; public class Main extends MovieClip { private var filter:FileFilter = new FileFilter('Изображения: (*.jpg, *.jpeg, *.gif, *.png)','*.jpg;*.jpeg;*.gif;*.png'); private var url:URLRequest = new URLRequest(); private var urlLoader:URLLoader = new URLLoader(); private var file:FileReference = new FileReference();; private var loader:Loader = new Loader();; public function Main() { browse_btn.addEventListener(MouseEvent.CLICK, browse); } public function browse(e) { file.addEventListener(Event.SELECT, select); //file.addEventListener(IOErrorEvent.IO_ERROR, error); //file.addEventListener(ProgressEvent.PROGRESS, progress); //file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, response); file.browse([filter]); } // загрузить изображение во флэш public function select(e:Event):void { file.addEventListener(Event.COMPLETE, getLoader); try { file.load(); } catch (e:Error) { } } // public function getLoader(e:Event):void { loader.contentLoaderInfo.addEventListener(Event.COMPLETE, upload); loader.loadBytes(file.data); } // public function upload(e):void { var bmpData:BitmapData = imgResize(loader.content as Bitmap); var fileName:String = String(new Date().getTime()); var jpg:JPEGEncoder = new JPEGEncoder(); url.data = jpg.encode(bmpData); url.url = "http://мой_сайт/upload.php?name="+fileName+"&d="+new Date().getTime(); url.method = URLRequestMethod.POST; url.contentType = 'application/octet-stream'; urlLoader.load(url); } // public function imgResize(bit:Bitmap):BitmapData { var w:Number = 800; var h:Number = 600; //var sourceBitmapData:BitmapData = new MyBitmapData(); var sx:Number = w / bit.width; var sy:Number = h / bit.height; var bitmap:Bitmap = new Bitmap( new BitmapData( w, h ) ); bitmap.bitmapData.draw( bit.bitmapData, new Matrix( sx, 0, 0, sy, 0, 0 ) ); return bitmap.bitmapData; } } } Последний раз редактировалось sadrbox; 16.07.2013 в 13:40. Причина: НЕ ВЕРНЫЙ КОД |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|