首先,我不是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>
答案 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/