我有一个非常简单的Flex 4应用程序,mxml看起来像这样:
<?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 :(得分:0)
在应用程序中,您使用spark:ModuleLoader加载火花模块或应用程序(spark:Module或spark:Application)。这会处理依赖关系以及加载过程。