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

Регистрация: Jun 2010
Сообщений: 30
По умолчанию Ресайз фото

Здравствуйте!

Подскажите как переделать эту функцию- resizePicture(), так чтобы параметром передовал, что ресайзить сперва объект pLoader потом объект bmp?
Код AS3:
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");
        }
Вот весь код
Код AS3:
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");
        }
    }
}
Вот исходник: СКАЧАТЬ

Помогите пожалуйста, я просто уже неделю сижу...и ломаю голову...не получается...