2012-10-11 35 views
1

我有一個非常簡單的Flex 4應用的Flex應用程序時,在MXML這看起來是這樣的:播放器崩潰加載使用的SWFLoader

<?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/halo" 
    minWidth="400" minHeight="300"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.controls.Alert; 

      public function Execute(foo:Object):void { 
       Alert.show("Hello World"); 
      } 
     ]]> 
    </fx:Script> 
</s:Application> 

我使用flex/bin/mxmlc file.mxml編譯此。

在另一個Flex應用程序中,我嘗試使用SWFLoader加載上面的應用程序,並運行Execute函數。它的代碼類似於:

var swfLoader:SWFLoader = ...; 
// on load, run the below 
var loadedSM:SystemManager = SystemManager(swfLoader.content); 
var loadedApp:Object = loadedSM.application; 
loadedApp.Execute(this); 

外部應用程序被加載到瀏覽器就好了,但是當加載的SWFLoader內部應用,外部應用程序崩潰/卸載:在瀏覽器窗口變成了白色。

在從Flash Player中的調試日誌,這是我所看到的:

VerifyError: Error #1053: Illegal override of getElementNearestScrollPosition in spark.layouts.HorizontalLayout. 

ReferenceError: Error #1065: Variable ImageSkin__embed_mxml_Assets_swf___brokenImage_818059060 is not defined. 

ReferenceError: Error #1065: Variable _0c91adc980e321d1cb58dff2b8f06798859d4954576f5b2afe24ac0f6c486f60_flash_display_Sprite is not defined. 

在所有任何指針?

回答

0

在一個應用程序中,使用spark:ModuleLoader加載spark模塊或應用程序(spark:Module或spark:Application)。這將負責依賴關係以及加載過程。