![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2010
Сообщений: 30
|
Здравствуйте!
Подскажите как переделать эту функцию- resizePicture(), так чтобы параметром передовал, что ресайзить сперва объект pLoader потом объект bmp? private function entrFrameHandler(e:Event) { if (! moreThanZero) { if (pLoader.width>0) { moreThanZero=true; resizePicture(); } else { trace("waiting..."); } } } private function resizePicture() { var delitel=0; pLoader.x=0; pLoader.y=0; if (pLoader.width>fotoHolder_Width || pLoader.width<fotoHolder_Width) { delitel=pLoader.width/fotoHolder_Width; pLoader.width=pLoader.width/delitel; pLoader.height=pLoader.height/delitel; } if (pLoader.height>fotoHolder_Height || pLoader.height>fotoHolder_Height) { delitel=pLoader.height/fotoHolder_Height; pLoader.height=pLoader.height/delitel; pLoader.width=pLoader.width/delitel; } pLoader.x=(fotoHolder_Width-pLoader.width)/2; pLoader.y=(fotoHolder_Height-pLoader.height)/2; trace("resized"); } package { import flash.display.Sprite; import flash.events.*; import flash.net.FileFilter; import flash.net.FileReference; import flash.net.URLRequest; import flash.utils.ByteArray; import flash.display.Loader; import flash.display.Bitmap; import flash.display.BitmapData; public class fileSelector extends Sprite { private var fileRef:FileReference; private var pLoader:Loader; private var fotoHolder_Width:Number; private var fotoHolder_Height:Number; private var textTypeFilter:FileFilter; private var moreThanZero:Boolean; public function fileSelector() { fotoHolder_Width=700; fotoHolder_Height=578; pLoader=new Loader(); fotoHolder.addChild(pLoader); fileRef=new FileReference(); textTypeFilter=new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)","*.jpg;*.jpeg;*.gif;*.png"); fileRef.addEventListener(Event.SELECT, onFileSelected); fileRef.addEventListener(Event.CANCEL, onCancel); fileRef.addEventListener(IOErrorEvent.IO_ERROR, onIOError); fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); selectBTN.addEventListener("mouseDown",selectFotoPressedHandler); fotoHolder.addEventListener("mouseDown",fotoHolderPressedHandler); } private function onFileSelected(evt:Event):void { fileRef.addEventListener(ProgressEvent.PROGRESS, onProgress); fileRef.addEventListener(Event.COMPLETE, onComplete); fileRef.load(); } private function onProgress(evt:ProgressEvent):void { trace("Loaded " + evt.bytesLoaded + " of " + evt.bytesTotal + " bytes."); } private function onCancel(evt:Event):void { trace("The browse request was canceled by the user."); } private function onComplete(evt:Event):void { moreThanZero=false; fotoHolder_Width=700; fotoHolder_Height=578; pLoader.contentLoaderInfo.addEventListener(Event.INIT,imageInited); pLoader.loadBytes(fileRef.data); } public function imageInited(evt:Event):void { var myBitmapData:BitmapData = new BitmapData(pLoader.width, pLoader.height); myBitmapData.draw(pLoader); var bmp:Bitmap = new Bitmap(myBitmapData); fotoHolder2.addChild(bmp);//вот етот bmp добавь куда хочешь addEventListener("enterFrame",entrFrameHandler); } public function onIOError(evt:IOErrorEvent):void { trace("There was an IO Error."); } public function onSecurityError(evt:Event):void { trace("There was a security error."); } private function GoSelectFoto() { fileRef.browse([textTypeFilter]); } private function selectFotoPressedHandler(e:Event) { trace("selectFotoPressed"); GoSelectFoto(); } private function fotoHolderPressedHandler(e:Event){ trace("fotoHolderPressedHandler"); } private function entrFrameHandler(e:Event) { if (! moreThanZero) { if (pLoader.width>0) { moreThanZero=true; resizePicture(); } else { trace("waiting..."); } } } private function resizePicture() { var delitel=0; pLoader.x=0; pLoader.y=0; if (pLoader.width>fotoHolder_Width || pLoader.width<fotoHolder_Width) { delitel=pLoader.width/fotoHolder_Width; pLoader.width=pLoader.width/delitel; pLoader.height=pLoader.height/delitel; } if (pLoader.height>fotoHolder_Height || pLoader.height>fotoHolder_Height) { delitel=pLoader.height/fotoHolder_Height; pLoader.height=pLoader.height/delitel; pLoader.width=pLoader.width/delitel; } pLoader.x=(fotoHolder_Width-pLoader.width)/2; pLoader.y=(fotoHolder_Height-pLoader.height)/2; trace("resized"); } } } Помогите пожалуйста, я просто уже неделю сижу...и ломаю голову...не получается... |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 30
|
Посмотрите в исходнике, там два мувика и кнопка... по нажатию на кнопку загружается фото в эти два мувика....Надо чтобы фото в двух мувиках было одинакового размера...
Вот урок (там про ресайз написано): здесь Я не могу разобраться как переделать эту функцию- resizePicture(), так чтобы параметром передовал, что ресайзить сперва объект pLoader потом объект bmp? |
|
|||||
|
geka96,
Вы же вроде у меня на сайте задавали этот вопрос ссылка Я там ответил там немного переделав этот кривой механизм Убрал мувиклипы Убрал цикл проверки и еще что-то не помню уж сейчас Насколько я понял нужно чтобы в 2 клипа грузилась одна картинка и они одинакового размера становились после ресайза вот класс переделанный package { import flash.display.Sprite; import flash.events.*; import flash.net.FileFilter; import flash.net.FileReference; import flash.net.URLRequest; import flash.utils.ByteArray; import flash.display.Loader; import flash.display.Bitmap; import flash.display.BitmapData; public class fileSelector extends Sprite { private var fileRef:FileReference; private var pLoader:Loader; private var resizeObject={w:200,h:148} private var textTypeFilter:FileFilter; private var foto1_Sprite:Sprite=new Sprite(); private var foto2_Sprite:Sprite=new Sprite(); private var bmp:Bitmap; private var bmp2:Bitmap; public function fileSelector() { pLoader=new Loader(); addChild(foto1_Sprite); addChild(foto2_Sprite); fileRef=new FileReference(); textTypeFilter=new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)","*.jpg;*.jpeg;*.gif;*.png"); fileRef.addEventListener(Event.SELECT, onFileSelected); fileRef.addEventListener(Event.CANCEL, onCancel); fileRef.addEventListener(IOErrorEvent.IO_ERROR, onIOError); fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); selectBTN.addEventListener("mouseDown",selectFotoPressedHandler); } private function onFileSelected(evt:Event):void { fileRef.addEventListener(ProgressEvent.PROGRESS, onProgress); fileRef.addEventListener(Event.COMPLETE, onComplete); fileRef.load(); } private function onProgress(evt:ProgressEvent):void { trace("Loaded " + evt.bytesLoaded + " of " + evt.bytesTotal + " bytes."); } private function onCancel(evt:Event):void { trace("The browse request was canceled by the user."); } private function onComplete(evt:Event):void { pLoader.contentLoaderInfo.addEventListener(Event.INIT,imageInited); pLoader.loadBytes(fileRef.data); } public function imageInited(evt:Event):void { var myBitmapData:BitmapData = new BitmapData(pLoader.width, pLoader.height); var myBitmapData2:BitmapData = new BitmapData(pLoader.width, pLoader.height); myBitmapData.draw(pLoader); myBitmapData2.draw(pLoader); //// если пока не объявлен битмап - объявляем а если он уже существует - в его свойство bitmapData запихиваем объект myBitmapData // это сделано для множественного выбора фото if(bmp==null){ bmp = new Bitmap(myBitmapData); }else{ bmp.bitmapData=myBitmapData; } if(bmp2==null){ bmp2 = new Bitmap(myBitmapData); }else{ bmp2.bitmapData=myBitmapData; } if(foto1_Sprite.contains(bmp)){ foto1_Sprite.removeChild(bmp); } if(foto2_Sprite.contains(bmp2)){ foto2_Sprite.removeChild(bmp2); } foto1_Sprite.addChild(bmp); foto2_Sprite.addChild(bmp2); // запуск ресайза resizePicture(); } public function onIOError(evt:IOErrorEvent):void { trace("There was an IO Error."); } public function onSecurityError(evt:Event):void { trace("There was a security error."); } private function GoSelectFoto() { fileRef.browse([textTypeFilter]); } private function selectFotoPressedHandler(e:Event) { trace("selectFotoPressed"); GoSelectFoto(); } private function resizePicture() { var delitel=0; foto1_Sprite.x=20; foto1_Sprite.y=20; if (foto1_Sprite.width>resizeObject.w) { delitel=foto1_Sprite.width/resizeObject.w; foto1_Sprite.width=foto1_Sprite.width/delitel; foto1_Sprite.height=foto1_Sprite.height/delitel; } if (foto1_Sprite.height>resizeObject.h) { delitel=foto1_Sprite.height/resizeObject.h; foto1_Sprite.height=foto1_Sprite.height/delitel; foto1_Sprite.width=foto1_Sprite.width/delitel; } // ресайз копии foto2_Sprite.width=foto1_Sprite.width; foto2_Sprite.height=foto1_Sprite.height; foto2_Sprite.x=foto1_Sprite.x+foto1_Sprite.width+20; foto2_Sprite.y=foto1_Sprite.y; trace("resized"); } } } Последний раз редактировалось djyamato; 10.07.2010 в 00:35. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|