Показать сообщение отдельно
Старый 09.11.2012, 06:35
Sylon вне форума Посмотреть профиль Отправить личное сообщение для Sylon Найти все сообщения от Sylon
  № 3  
Ответить с цитированием
Sylon

Регистрация: 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 - нормальное явление, ибо с таким разрешением производятся вычисления.