我有一个非常简单的 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.
有任何指针吗?