0

首先,我不是 Flex 方面的专家,所以以下可能是 101 个陷阱。

我的第一个问题是我试图将包含在画布中的一组对象旋转 90 度,每个对象的大小都是统一的,包含文本和图像。我的第一个问题是旋转对象会导致它们调整到自身的范围。例如,如果对象为 200 x 250,图像从 0 像素拉伸到 250 像素,则旋转后内容将调整为 200 像素,这意味着图像现在为 200 像素。我随后可以将对象的大小重新调整到适当的尺寸,但感觉很尴尬和笨拙。有没有更好的方法来执行这种旋转,它可以旋转对象而不受对象边界的限制?

其次,理想情况下,我需要此代码在 creationComplete 事件中运行。当它这样做时,对象的定位/居中被忽略并且在屏幕上呈现时是不同的(例如,如果我在单击事件中运行以下代码,它会在其中心点上完美旋转;通过 creationComplete 它偏移对象像中心点不存在)?

任何指针?

我的轮换代码...

<mx:Script>
    <![CDATA[
        // Capture the init for the application
        private function InitialRotate( e:Event ):void{ 
            var offsetWidth:Number = (this.width / 2);
            var offsetHeight:Number = this.y + (this.height / 2);
            // Rotates on the center (but resizes)
            var tempMatrix:Matrix = this.transform.matrix;                
            tempMatrix.translate(-offsetWidth,-offsetHeight);
            tempMatrix.rotate(90 * (Math.PI / 180));
            tempMatrix.translate(+offsetWidth,+offsetHeight);
            this.transform.matrix = tempMatrix;
            // Adjusts the objects position and width to size appropriately
            this.y -= 5.5;
            this.width = 256;
        }
    ]]>
</mx:Script>
4

1 回答 1

0

我使用 spark rect 类(recently.spark.primitives.supportClasses.GraphicElement.rotation)的旋转属性,它就像

line.rotation=90;

也许这个博客有帮助:http ://blog.flexexamples.com/2007/09/14/rotating-images-using-the-matrix-class/

于 2012-04-17T19:07:20.113 回答