АС3 | Изменение свойства Z изображения удалит сглаживание

Я добавил изображение на сцену, установив для свойства сглаживания значение true. Все в порядке, пока я не изменю свойство Z — это сделает мое изображение чертовски размытым, хотя свойство сглаживания равно true.

Могу ли я что-нибудь сделать?


person Adam    schedule 26.04.2015    source источник


Ответы (1)


Не совсем. Когда вы применяете любое 3D-преобразование к экранному объекту (z, rotationX и т. д.), он будет отображаться с помощью средства визуализации 3D-проекции, что, к сожалению, приводит к некоторому размытию. Если ваш объект вернулся к z=0 и вы хотите полностью удалить 3D-проекцию, установите transform.matrix, который удалит transform.matrix3D и удалит любое размытие рендеринга проекции.

Например, следующее заставит 3D-объект отображения стать 2D-объектом отображения, удалив любую 3D-проекцию, которая у него была:

function remove3D(object:DisplayObject):void {
    object.transform.matrix = new Matrix(object.scaleX, 0, 0, object.scaleY, object.x, object.y);
}
person Aaron Beall    schedule 27.04.2015
comment
Можете ли вы показать мне пример? Как я могу установить transform.matrix, чтобы удалить transform.matrix3D? Нигде не могу найти. - person Adam; 27.04.2015
comment
Это так же просто, как object.transform.matrix = new Matrix(). Свойства transform.matrix и transform.matrix3D являются взаимоисключающими, если вы установите одно из них, другое обнуляется. Я обновил свой ответ примером, который удаляет 3D-свойства, но сохраняет 2D-свойства. - person Aaron Beall; 27.04.2015