Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Изменение размеров загруженной картинки (http://www.flasher.ru/forum/showthread.php?t=157984)

Lyso 13.06.2011 18:44

Изменение размеров загруженной картинки
 
Загружаю во flash картинку с стороннего сайта, через Loader.
Код AS3:

                private function loadImage():void{
                        loader=new Loader();
                        addChild(loader);
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE,showImage);
                        loader.load(new URLRequest("http://mysite.ru/nameImage.jpg"));
                }
 
                private function showImage(e:Event):void{                       
                        loader.x=stage.stageWidth/2-loader.contentLoaderInfo.width/2;
                        loader.y=20;
                }

Каким способом можно после загрузки картинки изменить ее размер?

Добавлено через 1 минуту
UPDATE
Код AS3:

                        with(loader){
                                x=stage.stageWidth/2-loader.contentLoaderInfo.width/2;
                                y=20;
                        }

Так "грамотно" писать?

samana 13.06.2011 18:49

У loader есть width,height,sclaeX,scaleY, и у битмапы, которую он загрузил тоже.

Lyso 13.06.2011 18:54

К чему лучше обращаться? К loader'у или к BitMap'y? В плане скорости.

incvizitor 13.06.2011 18:54

Код AS3:

private function loadImage():void{
                        loader=new Loader();
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE,showImage);
                        loader.load(new URLRequest("http://mysite.ru/nameImage.jpg"));
                }
 
                private function showImage(e:Event):void{       
                        loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,showImage);               
                        var content:DisplayObject = loader.contentLoaderInfo.content as DisplayObject;
                        addChild(content);
                        content.x=stage.stageWidth/2 - content.width/2;
                        content.y=20;
                }


Lyso 13.06.2011 18:58

Спасибо. Очередной вопрос, каким способом можно пропорционально уменьшить изображение, до тех пор, пока оно целиком не влезет в флешку?
Пока приходит на ум, что-то типа:
Код AS3:

for(var i:uint=0;i<Infinity;i++){
if(content.x>stage.stageWidth && content.y>stage.stageHeight){
content.width-=50;
content.height-=50;
}
}


marat_sa 13.06.2011 19:11

Код AS3:

/**
 * Пропорционально изменяет размер DisplayObject
 *
 * @param        object - объект, который нужно сжать
 * @param        size - минимальный размер, в который нужно вписать объект
 */

public static function setConstrainSize(object:DisplayObject, size:Number):void
{
        var scale:Number = Math.min(size / object.width, size / object.height);
        object.scaleX = object.scaleY = scale;
}

В вашем случае
setConstrainSize(content, Math.min(stage.stageWidth, stage.stageHeight));

Lyso 13.06.2011 19:15

Огромное спасибо!


Часовой пояс GMT +4, время: 21:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.