2012-01-10 139 views
0

我使用AS3作爲Flash Builder 4.5中的「Actionscript項目」編寫了一個大型的Actionscript項目。我有一堆堅實的,可重用的代碼,但其中一個重要組件是一個main.as文件,它擴展了Sprite並作爲我的應用程序的顯示代碼。將基於Sprite的SWF文件轉換爲mxml

我現在因各種原因需要成爲一個Flex應用程序。我試圖得到最起碼的包裝可能,所以這裏我有什麼(由於互聯網):

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="590" minHeight="700" 
      initialize="initPlayer()">` 

<fx:Script> 
    <![CDATA[ 
     import mx.controls.Alert; 
     import mx.core.UIComponent; 
     public function initPlayer():void { 
      Alert.show("Testing!"); 
      var comp:UIComponent = new UIComponent(); 
      comp.addChild(new MainView()); 
      addChild(comp); 
     } 
    ]]> 
</fx:Script> 
</s:Application> 

當我推出這個,但是,它有一個空白的窗口出現。沒有錯誤,警報不會觸發,什麼都沒有。任何想法發生了什麼?

回答

0

嘗試使用applicationComplete而不是initialize。初始化會在應用程序生命週期的早期觸發,而像addChild這樣的內容更適合稍後在循環中使用(applicationComplete對應於子組件中的creationComplete)。

0

我用一個簡單的sprite類「TestSprite」代替你的「MainView」。有用。警告和TestSprite都可以工作。所以,我認爲你的「MainView」必須有一些東西阻止flex顯示它。

public class TestSprite extends Sprite 
{ 
    public function TestSprite() 
    { 
     super(); 
     graphics.beginFill(0x000000); 
     graphics.drawRect(0, 0, 100, 100); 
     graphics.endFill(); 
    } 
}