Проблема с динамической регистрацией Flex MultiCouch - PullRequest
1 голос
/ 28 декабря 2011

Есть ли какой-нибудь (простой) способ решения проблемы динамической регистрации с событиями мультисенсорного масштабирования во flex? Я просто не могу обернуться вокруг этого.

У меня есть (среди некоторых строк и надписей) путь в группе, который сам обернут в скроллер;

<s:Scroller id="scroller">
    <s:Group id="scrollerContent">

    <s:Path id="path">
        <s:stroke>
            <s:SolidColorStroke color="#ffffff" weight="2"/>
        </s:stroke>
        </s:Path>
    </s:Group>
</s:Scroller>

Что я хотел бы сделать, так это увеличить и уменьшить путь (и другие элементы в группе scrollerContent), поэтому в своем методе creationComplete () я добавил eventListener в группу scrollerContent:

scrollerContent.addEventListener(TransformGestureEvent.GESTURE_ZOOM, zoomEvent);

Вот код, который Кристоф Кенрэетс предоставил для своего примера диаграммы (который фактически масштабирует путь, хотя основывается на x = 0;

* * 1010

Мне известен класс DynamicRegistration, но я не могу заставить его работать должным образом, он по-прежнему масштабирует путь на основе точки x = 0.

DynamicRegistration.scale(scrollerContent, new Point(e.localX, e.localY), scrollerContent.scaleX*= e.scaleX, scrollerContent.scaleY=1);

Любая помощь по этому вопросу будет принята с благодарностью!

1 Ответ

1 голос
/ 16 июня 2012

Я использовал класс DynamicRegistration, и он заработал так, если вы все еще заинтересованы:

protected function onZoom(e:TransformGestureEvent, img:Image):void
{
    DynamicRegistration.scale(img, new Point(e.localX, e.localY), img.scaleX*e.scaleX, img.scaleY*e.scaleY);
}

Или с собственным методом flex:

protected function onZoom(e:TransformGestureEvent, img:Image):void
    {
    img.transformAround(new Vector3D(e.localX, e.localY, 0), new Vector3D(img.scaleX*e.scaleX, img.scaleY*e.scaleY, 0));
    }
...