Цитата:
Сообщение от passertm
Разве BitmapData хранить информацию о матрице. Если хранит то зачем?
Если не хранит почему не получается без матрицы нарисовать содержимое BitmapData?
|
Не хранит. Но также и не хранит информацию об исходных координатах точек, которые были отрисованы в BitmapData. После отрисовки в (0, 0) BitmapData попадает (r.left, r.top) исходного изображения.
А нарисовать не получается, потому что вы хотите не того, что на самом деле делает beginBitmapFill + drawRect. Неверно ожидать, что (0, 0) от используемой текстуры будет в каком-то углу прямоугольника. Вообще, схема рисования с bitmapFill следующая:
- Берется исходная текстура с координатами (0,0).
- Размножатеся или растягивается по всей плоскости (параметр repeat)
- Ко всей плоскости применяется указанный Matrix.
- При необходимости применяется smoothing.
- На плоскости фигурой вырезается контур. При этом контур может быть невыпуклым, со внутренними вырезами и т.п. Контур может формироваться рисованием фигур (drawRect, drawCircle и т.п.) и рисованием примитивов (moveTo, lineTo, curveTo).
- Вырезанная область и является результатом отрисовки
Обратите внимание, что область (изображение) формируется до того, как нарисована первая точка. Ну и в вашем случае вы из размноженной картинки (0, 0, r.right-r.left, r.bottom-r.top) вырезаете прямоугольник (r.left, r.rigth, r.right-r.left, r.bottom-r.top). Очевидно, что скорее всего картинка будет неправильной.