0

请帮我解决一个大问题。

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

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

4

1 回答 1

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 组件。

于 2012-08-22T16:10:46.220 回答