2013-03-18 5 views
0

플렉스의지도처럼 내 그림을 확대하려고하지만 모든 작업을 HSlider에서 확대하고 있습니다. Google지도처럼 내 그림을 확대하는 방법을 설명해 주시겠습니까?플렉스의지도처럼 확대/축소

여기 줌 내 코드입니다 : 내 줌 기능 :

private function doZoom(component:UIComponent,val:Number):void 
     { 
      if(component is Container) 
      { 
       var children:Array = Container(component).getChildren(); 
       for(var i:int = 0; i < children.length; i++) 
       { 
        zoomChildren(children[i], val); 
       } 
      } 

     } 

     private function zoomChildren(component:UIComponent,val:Number):void 
     { 

      component.scaleX = val; 
      component.scaleY = val; 
      if(component is Container) 
      { 
       var children:Array = Container(component).getChildren(); 
       for(var i:int = 0; i < children.length; i++) 
       { 
        doZoom(children[i], val); 
       } 
      } 
     } 

     public function applyZoom():void 
     { 

      if(pnl == null) 
      { 
       return; 
      } 

      doZoom(pnl,zoomSlider.value); 
     } 

내 구성 요소 : 당신은 마우스 스크롤 휠 입력에 따라 구성 요소의 응답을 만들고 싶어한다는 것을 의미하는 경우

<s:VGroup> 
    <s:Button label="Загрузить SVG" click="PathsService.getPaths()"/> 

    <mx:Panel y="30" width="1300" height="600" id="pnl" title="Отрисовка SVG" borderColor="#008040" fontFamily="Arial" fontWeight="bold" fontSize="13"> 

     <s:VGroup height="100%" width="100%" clipAndEnableScrolling="true"> 

      <s:SpriteVisualElement width="100%" height="100%" id="spr" /> 
     </s:VGroup> 

    </mx:Panel> 
    <s:HGroup height="100%" width="100%"> 
     <s:Label text="Zoom" x="250"/> 

     <mx:HSlider id="zoomSlider" minimum=".1" value="1" 
        maximum="2" change="applyZoom()" width="180" x="300"/> 
    </s:HGroup> 
</s:VGroup> 

답변

0

마우스 스크롤 이벤트에 대한 이벤트 리스너를 등록해야합니다. 당신이 스크롤 휠이

를 이동 한 금액을 포함해야 event.delta 값을 받아야 당신의 MouseWheelHandler 함수에서 다음 줄을 addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);

를 추가 확대하려고하는 구성 요소의 예를 들어