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