PDA

Просмотр полной версии : Как изменить width без scaleX


rezachez
27.01.2012, 21:47
image.width = 100;
//image.scaleX = 1;
image.width = 50;
//image.scaleX = 0.5; //тут надо чтобы осталась "1"
Я загрузил картинки разного размера. Уменьшаю. под заданный мною размер. Но потом мне нужно использовать свойство scaleX и мне надо, чтобы после уменьшения оно было "1".

mooncar
27.01.2012, 21:50
rezachez, код необходимо оформлять соответственным тегами. Ознакомьтесь с правилами!

wvxvw
27.01.2012, 22:04
Для картинки можно скопировать ее BitmapData и с ипользованием матрицы трансформаций уменьшить - таким образом создав новую картинку. Но в общем случае, то что вы хотите сделать невыполнимо - если вы меняете ширину, то scaleX должен отражать то, на сколько ширина отличается от изначальной.

Stitch512
27.01.2012, 22:11
Можно image поместить в Sprite и переопределить метод width чтобы он менял размер содержимого,а не самого элемента, примерно так


public class NewImage extends Sprite
{
private var _image:DisplayObject = null;

public function NewImage(image:DisplayObject)
{
_image = image;
}

public override set width(value:Numer):void
{
_image.width = value;
}

public override set height(value:Numer):void
{
_image.height = value;
}

}



var newImage:NewImage = new NewImage(image);
newImage.width = 100;
//newImage.scaleX = 1;
newImage.width = 50;
//newImage.scaleX = 1;