Добрый день. Сразу говорю во флеше разбираюсь 3й день, так что сильно не бейте) Написал простенькую флешку по примерам. Суть такова: при нажатии на кнопку открывается диалоговое окно для выбора фото, после нажатия на «ок» формируется лоадер и фото отправляется на сервер, сервер принимает поток и сохраняет фото в папке, всё прекрасно работает. Теперь вопрос, как мне это фото, прежде чем отправить уменьшить в размере ну скажем до 800х600 (600х800), и потом отправить уже уменьшенную копию на сервер. Код | import flash.display.Sprite; import flash.events.MouseEvent; import flash.net.FileReference; //import flash.net.FileReferenceList; import flash.net.FileFilter; import flash.utils.ByteArray; import flash.events.MouseEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.display.MovieClip; import fl.controls.ProgressBarMode; import flash.display.Bitmap; import flash.display.BitmapData; import avmplus.INCLUDE_ACCESSORS;
var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)","*.jpg; *.jpeg; *.gif; *.png"); var fileRefList:FileReference = new FileReference(); var loader:Loader; var fileName:String, request:URLRequest, urlLoader: URLLoader, strFileNoEx:String, reg:RegExp;
function opens(event:MouseEvent):void { fileRefList.addEventListener(Event.SELECT, selectHandler); fileRefList.addEventListener(Event.COMPLETE,onComplete);
urlLoader = new URLLoader(); urlLoader.addEventListener(Event.COMPLETE,completeHandlerUrlLoader);
fileRefList.browse([imageTypes]); }
function onComplete(event:Event):void {
loader = new Loader ;
loader.loadBytes(fileRefList.data);
//отправляем на сервер //reg = /\.\w+/;//регулярка вылавливающая расширение файла //strFileNoEx = fileRefList.name.replace(reg,''); //trace(strFileNoEx);//имя загруженного файла без расширения fileName = String(new Date().getTime());// + '.' + strFileNoEx;
request = new URLRequest( "http://localhost/save-file.php?name="+fileName+"&d="+new Date().getTime()); request.data = fileRefList.data; request.method = URLRequestMethod.POST; request.contentType = 'application/octet-stream'; urlLoader.load(request); }
function selectHandler(event:Event):void { try { fileRefList.load(); } // catch(illegalOperation:IllegalOperationError) ; catch (e:Error) { }
}
// File Upload Progress Function.; function completeHandlerUrlLoader(event:Event):void { ExternalInterface.call("myFunction", fileName); }
select_btn.addEventListener(MouseEvent.CLICK, opens);
|
Это сообщение отредактировал(а) ziga - 26.6.2013, 16:50
|