Flex,creationComplete和Rotation

时间:2012-04-17 12:09:15

标签: actionscript-3 flex flex3

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

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

其次,理想情况下,我需要在createComplete事件中运行此代码。当它这样做时,对象的定位/居中被忽略,并且在屏幕上呈现时是不同的(例如,如果我在我的点击事件中运行以下代码,它在其中心点上完美旋转;通过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>

1 个答案:

答案 0 :(得分:0)

我使用了spark rect类的rotate属性(recent.spark.primitives.supportClasses.GraphicElement.rotation),它就像

一样简单
line.rotation=90;

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