Просмотр полной версии : Как изменить width без scaleX
rezachez
27.01.2012, 21:47
image.width = 100;
//image.scaleX = 1;
image.width = 50;
//image.scaleX = 0.5; //тут надо чтобы осталась "1"
Я загрузил картинки разного размера. Уменьшаю. под заданный мною размер. Но потом мне нужно использовать свойство scaleX и мне надо, чтобы после уменьшения оно было "1".
rezachez, код необходимо оформлять соответственным тегами. Ознакомьтесь с правилами!
Для картинки можно скопировать ее 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;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.