在as3中旋转一个组

时间:2012-08-22 13:27:53

标签: actionscript-3 blackberry-playbook

请帮我解决一个大问题。

我需要从中心旋转布局(火花组件组),我可以从中心旋转它。但是一旦我旋转它,它的全部给我jadgy边缘。就像我旋转图像一样,我可以将其位图平滑设置为true,这样就不会出现jadgy边缘。但是在小组中没有平滑变量请告诉我如何实现这一点。

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事件上调用此函数。

1 个答案:

答案 0 :(得分:0)

查看将cacheAsBitmap设置为true有助于:

  group_icons.cacheAsBitmap = true;

如果没有,你总是可以将组绘制成位图并显示,但它的子节点不会是交互式的。

 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包装位图以将其添加到Flex组件。