PDA

Просмотр полной версии : Округление при startDrag


TanaTiX
10.06.2012, 12:39
Если при startDrag в указанной прямоугольной области будут дробные координаты, то они при таскании округляются до целочисленных (даже не до твипсов)
Кто-нибудь сталкивался? Какие решения наиболее оптимальны в данном случае?

На всякий случай код для тестов, если кто захочет, чтобы не парится лишние 5 минут (тестил в ИДЕ, но это не принципиально).

import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.events.MouseEvent;

var slider:Sprite = _slider;
var back:Sprite = _back;
var r:Rectangle;

slider.addEventListener(MouseEvent.MOUSE_DOWN, onSliderDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onSliderUp);

function onSliderUp(e:MouseEvent):void{
slider.stopDrag();
}

function onSliderDown(e:MouseEvent):void{
r = new Rectangle(back.x, back.y, back.width, back.height);
slider.startDrag(false, r);
}

Aquahawk
10.06.2012, 12:54
Какие решения наиболее оптимальны в данном случае?
Никогда не использовать startDrag.
Попробуйте подписаться на mouseMove на стейдже и двигать самостоятельно так как вам хочется и увидите что это в разы лучше.

TanaTiX
10.06.2012, 19:08
И на том спасибо :)