|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
|
getBounds() присылает мне не верную геометрию фигуры
доброго времени суток.
функция getBounds() присылает мне не верную геометрию фигуры. то есть что я делаю. есть вот такая функция присылающая геометрию фигуры //Метод определяющий геометрию геометрию тайдла. private function getFrameSize(childByName:DisplayObject):Rectangle { var min:Point = new Point(); var max:Point = new Point(); var bounds:Rectangle; //allChildGotoFrame(mc, i); bounds = childByName.getBounds(childByName); min.x = Math.min(bounds.topLeft.x, min.x); min.y = Math.min(bounds.topLeft.y, min.y); max.x = Math.max(bounds.bottomRight.x, max.x); max.y = Math.max(bounds.bottomRight.y, max.y); //trace(max.x - min.x); trace(min.x, min.y, max.x - min.x, max.y - min.y); return new Rectangle(min.x, min.y, max.x - min.x, max.y - min.y); } А вот что возвращает мне данная функция (x=-5.05, y=-5.05, w=26, h=21) как такое может происходить если стороны равны 10 пикселям? может быть я неправильно пытаюсь узнать длину сторон? Последний раз редактировалось iNils; 09.11.2012 в 13:43. |
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
значит в фигуре есть обводка толщиной 0.10. ну и ещё какой-то мусор
|
|
|||||
Регистрация: Nov 2009
Сообщений: 16
|
Такой результат может получаться и при отсутствии мусора.
К сожалению, getBounds работает весьма ненадёжно. Подробно вылавливать условия, при которых возникают лажевые результаты, руки не доходили, но как минимум при следующих условиях getBounds может давать кривые значения: 1. Контур с JointStyle.MITER или .BEVEL в сочетании с LineScaleMode, любым кроме NONE (впрочем, при этом и на экране выглядит зачастую весьма коряво, особенно при большой ширине контура; однако баги отображения и значений getBounds не коррелированы) 2. Использование scrollRect - как в самом объекте, так и в потомках. 3. Наличие TextField-ов с использованием системных шрифтов. Зависит от используемого шрифта. Глюки часто были на WinXP, на Win7 с плеерами от 10-го вроде-бы не повторялось 4. При перегрузке проца, когда подряд вызывается много обработчиков (например от MOUSE_MOVE и таймеров), и комп не успевает всё перерисовывать... объект, для которого берётся getBounds при этом может никак не меняться, включая всех родителей и потомков. Однако значения размеров/положения могут получаться "весьма интересные" - каждый раз разные при нескольких вызовах getBounds. 5. При наличии преобразований (масштабирование, поворот и т.п.) ошибки в пределах 0.05 - нормальное явление, ибо с таким разрешением производятся вычисления. |
|
|||||
Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
|
Большое спасибо за внимание как оказалось на деле.
Действительно был мусор в виде добавление +10 пикселов в кеше ко всей анимации(. Цитата:
|
Часовой пояс GMT +4, время: 03:46. |
|
« Предыдущая тема | Следующая тема » |
|
|