Flex Scroller на swfloader умирает при увеличении - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть объект swfloader, к которому я хочу приблизиться (относительно точки) .... этого я достиг с некоторой помощью в Интернете.

Но теперь я замечаю, что когда яувеличить в точке, скроллер на загрузчике SWF больше не работает ....

Код, который я использую ниже ... любые идеи о том, как я мог бы решить эту проблему ???

<s:Scroller id="scrollme" width="100%" height="100%" >
    <s:HGroup id="mapView" width="100%" height="100%" clipAndEnableScrolling="true" >

        <s:SWFLoader id="img" autoLoad="true"  addedToStage="img_addedToStageHandler(event)" click="img_clicked(event)" maintainAspectRatio="true" includeIn="normal" />   
    </s:HGroup>
</s:Scroller>

и бит ActionScript

protected function onZoom(event:TransformGestureEvent):void
        {
            event.stopImmediatePropagation();
            scaleAt(event.scaleX,event.localX,event.localY)
        }
        public function scaleAt( scale : Number, originX : Number, originY : Number ) : void
        {
            // get the transformation matrix of this object
            affineTransform = img.content.transform.matrix; 
                //transform.matrix
            trace("zooming to " + scale)

            // move the object to (0/0) relative to the origin
            affineTransform.translate( -originX, -originY )

            // scale
            affineTransform.scale( scale, scale )

            // move the object back to its original position
            affineTransform.translate( originX, originY )


            // apply the new transformation to the object
            img.content.transform.matrix = affineTransform;
            //checkscroller();

        }
protected function img_addedToStageHandler(event:Event):void
        {
            Multitouch.inputMode = MultitouchInputMode.GESTURE;

            if (!Multitouch.supportsGestureEvents)
                currentState = "normal";
            else 
            {
                currentState = "normal";
                for each (var item:String in Multitouch.supportedGestures)
                {
                    if (item == TransformGestureEvent.GESTURE_PAN)
                        img.addEventListener(TransformGestureEvent.GESTURE_PAN, onPan);
                        /* else if (item == TransformGestureEvent.GESTURE_ROTATE)
                        img.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate); */
                    else if (item == TransformGestureEvent.GESTURE_SWIPE)
                        img.addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe);
                    else if (item == TransformGestureEvent.GESTURE_ZOOM)
                        img.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom);
                }
            }
        }

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012
<s:Scroller id="scrollme" width="100%" height="100%" >
    <s:HGroup id="mapView">
        <s:SWFLoader id="img" autoLoad="true"  addedToStage="img_addedToStageHandler(event)" click="img_clicked(event)" maintainAspectRatio="true" includeIn="normal" />   
    </s:HGroup>
</s:Scroller>
0 голосов
/ 23 февраля 2012

Не уверен, что понимаю, что ты делаешь. Вы используете SWFLoader для загрузки изображения? Почему бы просто не убедиться, что компонент Image с источником URL-адреса изображения.

В любом случае, HGroup не может обернуть ваш компонент, а для clipAndEnableScrolling установлено значение true. Удалите это свойство, и вы должны быть хорошими.

...