![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2006
Сообщений: 26
|
Проблема:
hitTestPoint (x, y, true) даёт положительный результат а выполненная тутже getObjectsUnderPoint (new Point(x, y)) - может вернуть пустой массив! Ошибка случается на кромках объектов. Возможно косяк разработчиков где-нить в округлении чисел.. В процессе экспериментов была выявлена странная закономерность - ошибка валит при координатах от nn.85 до nn.99. Использование округления координат проверки - результата не дало! По крайней мере на более сложных объектах чем линия. var cntr:int=0; // счетчик ошибок var i:Number; var nStep:Number=10; // ширина куска для обработки stage.addEventListener(Event.ENTER_FRAME, fn1); function fn1(event:Event):void{ for(i=0; i<nStep; i+=0.1){ // проверяем сразу кусок if(mLine.hitTestPoint(mPointer.x+i, mPointer.y, true)){ var obj:Array = mLine.getObjectsUnderPoint(new Point(mPointer.x+i, mPointer.y)); if(obj.length==0){ cntr++; tOut.text="[" + cntr + "] Error under point! X=" + (mPointer.x+i); } } } mPointer.x+=nStep; if(mPointer.x>587){ // если достигли края.. mPointer.x=7; mLine.rotation+=0.1; // поворачиваем линейку if(mLine.rotation > 2) mLine.rotation=-2; } } Исходник: |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|