1

我有一个非常简单的 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.

有任何指针吗?

4

1 回答 1

0

在应用程序中,您可以使用spark:ModuleLoader加载 spark 模块或应用程序(spark:Module 或 spark:Application)。这会处理依赖关系以及加载过程。

于 2012-10-12T15:28:52.673 回答