2012-08-22 1 views
0

큰 문제를 해결하는 데 도움주세요.as3 그룹의 순환

레이아웃 (스파크 구성 요소 그룹)을 중심에서 회전해야하며 중심에서 회전시킬 수 있습니다. 하지만 일단 그것을 회전 시키면, 그 모든 것이 나를 엉터리로 만듭니다. 마치 이미지를 회전하는 것보다 비트 맵을 부드럽게 설정할 수 있기 때문에 가장자리가 잘 리지 않을 것입니다. 그러나 그룹 내에서 평활화 변수가 없습니다. 어떻게 달성 할 수 있는지 말해주십시오.

var rotateMatrix:Matrix = group_icons.transform.matrix; 
      var rotatePoint:Point = 
       rotateMatrix.transformPoint(
        new Point((515/2), (515/2))); 
      rotateMatrix.translate(-rotatePoint.x, -rotatePoint.y); 
      var num : Number = getAngleFromMouseCoord(mouseX , mouseY , new Point(0,600)) ; 
      /* if(currentAngle != 0 && currentAngle > num) 
      { 
       currentAngle = num ; 
       num = -num ; 
      } 
      else 
       currentAngle = num ; */ 
      if(direction == true ) 
       rotateMatrix.rotate(num/30); 
      else 
       rotateMatrix.rotate(-num/30); 
      rotateMatrix.translate(rotatePoint.x, rotatePoint.y); 
      group_icons.transform.matrix = rotateMatrix ; 

이 함수는 ENTER_FRAME 이벤트에서 호출합니다.

group_icons.cacheAsBitmap = true; 

을 항상 비트 맵으로 그룹을 그리고 그 표시하지만 아이들이 상호 작용하지 않을 것입니다 수없는 경우 cacheAsBitmap이 true로 설정하면 도움이된다면

답변

0

을 참조하십시오.

var bmdData:BitmapData = new BitmapData(group_icons.width,group_icons.height,true,0x0000000); 
bmdData.draw(group_icons); 
var bmp:Bitmap = new Bitmap(bmdData,"auto",true); 

// apply transformations to the bmp here 

var uicomponent:UIComponent = new UIComponent(); 
uiComponent.addChild(bmp); 

someUIElement.addElement(uicomponent); 

플렉스 구성 요소에 비트 맵을 추가하려면 UIComponent로 비트 맵을 래핑해야합니다.

+0

그래, 시도해 봤어.하지만 내 코드에서 알 수 있듯이 그룹의 매트릭스가 회전하고있다. 하지만이 작업을 수행 할 경우이 비트 맵의 ​​매트릭스를 가져와야하므로 그룹 및 그룹 요소에 설정할 수 없으므로 다루기가 어렵지 않습니다. –