2012-02-23 2 views
0

У меня есть объект swfloader, на который я хочу увеличить масштаб (относительно точки) .... это я получил с некоторой помощью в Интернете.Flex Scroller на swfloader, умирающем при масштабировании

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

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

<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); 
       } 
      } 
     } 

ответ

0

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

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

+0

им с помощью SWFLoader для загрузки файла PDF, который сервис в сети дает мне швейцарские франки ... клип и включить тест была прокрутка .. он не работает без того слишком –

+0

Походит на швейцарских франках, что это нагрузки имеют странный способ сделать это масштабирование. Кажется, что он масштабирует его по-настоящему вначале, но затем либо клип, либо изменяет размер области обзора. Попробуйте загрузить обычное изображение или очень простой swf, чтобы узнать, работает ли он тогда. –

+0

Хм, да, это боль ... Я попробую и вернусь к тебе ... –

0
<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

Это то, что у меня было сначала ... как я уже упоминал выше ... он загружается ... когда я его увеличиваю масштабируется .. после этого скроллер не работает ... –

Смежные вопросы