flash as3 матрица понимания - PullRequest
1 голос
/ 26 мая 2011

Я пытаюсь понять функциональность матрицы flash, так как думаю, что это поможет мне решить эту проблему:

У меня есть серия коробок, разбитых на 4 колонки. Я хочу масштабировать один столбец (скажем, с коэффициентом 2) и выяснить, какой будет его новая ширина, чтобы я мог соответствующим образом переместить другие столбцы, чтобы они не покрывались новым масштабированным столбцом. Как мне понять это с помощью матрицы? Действительно ли нужны матрицы, и если да, то когда и почему? Кажется, что я мог бы просто взять что-то ширину, умножить это на 2 и использовать это значение для перемещения всех остальных столбцов - почему матрица лучше? Если я использую приведенный ниже код, как мне отследить ширину чего-либо, используя теоретическую матрицу:

var matrix:Matrix = new Matrix();
var scaleFactor:Number = 2;
matrix.scale(scaleFactor, scaleFactor);
//need to trace an object's width assuming the matrix would be applied to it, without actually applying it here.

1 Ответ

1 голос
/ 26 мая 2011

То, что вы делаете там, легче сделать с помощью scaleX и scaleY, например:

thing.scaleX = thing.scaleY = 2;

Нет реального преимущества (которое я могу придумать) для использования Матрицы длядостижение результатов, подобных приведенным выше;есть более простая функциональность, встроенная в сами объекты DisplayObject.Единственный раз, когда я действительно использовал бы Матрицу для изменения формы объекта, было бы искажать или сдвигать его.

При этом матрицы чрезвычайно полезны в качестве параметра BitmapData.draw() для манипулирования графикой результата- Я использую Matrix.translate() совсем немного здесь.

Я бы посмотрел на это, как это совершенно ясно:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Matrix.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...