Необходимо отразить группу, содержащую объекты, как показано на рисунке.
У меня есть образец изображения того, что я сделал в своем текущем прогрессе.
Цель: отражение объектов должно производиться по осям x и y, как показано на изображении ниже.
2 ответа
Простой код выглядит так:
copiedDisplayObject.scaleY = -1;
copiedDisplayObject.alpha = 0.4;
Это действительно конкретный пример отражения над линией, где линия оказывается осью x. (т.е. y = 0x + 0) Если вы хотите отразить другую линию, вы можете использовать матрицу. Приведенный ниже код сохраняет предыдущие преобразования экранного объекта и отражает их по линии, проходящей через начало координат.
var m:Number = 0.25; //example slope -- from line: y = mx + 0
var tmpMatrix = copiedDisplayObject.transform.matrix;
var relectMatrix:Matrix = new Matrix(1-m*m, 2*m, 2*m, m*m -1);
tmpMatrix.concat(relectMatrix);
copiedDisplayObject.transform.matrix = tmpMatrix;
Я нашел здесь матричную формулу: вопрос math.stackexchange.
Очень простой подход: для отражения у вас должна быть копия объекта, который будет отражаться. Отражение может быть произведено myReflectedObject.scaleY = -1
myReflectedObject.scaleY = -1;
myReflectedObject.alpha = 0.4;
//manage Y position accordingly
Похожие вопросы
Новые вопросы
actionscript-3
ActionScript 3 (AS3) - это язык объектно-ориентированного программирования (ООП) с открытым исходным кодом для платформ Adobe Flash и AIR. AS3 широко используется для RIA, мобильных приложений и настольных приложений. (ActionScript 3 является диалектом ECMAScript.)