2012-04-17 75 views
0

首先我不熟悉Flex,因此以下可能是101陷阱。Flex,creationComplete和Rotation

我的第一個問題是我試圖旋轉包含在一個畫布內的一組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> 
+0

「我最好需要此代碼在creationComplete事件內運行?」我可以問爲什麼? creationComplete事件是什麼?畫布?你想旋轉的內部對象之一?或者是其他東西? – JeffryHouser 2012-04-17 13:15:12

+0

正在旋轉的對象稱爲'ObjectX'。結構表示是一個包含多個ObjectX實例的單個畫布,在每個ObjectX實例中都將包含文本和圖像。爲了保持整潔/封裝,我期待在它自己的CreationComplete事件中執行ObjectX的旋轉。 – SeanCocteau 2012-04-17 13:56:14

回答