代码之家  ›  专栏  ›  技术社区  ›  Phobis

从SWF(版本7)向Flex 3应用程序发送数据

  •  1
  • Phobis  · 技术社区  · 17 年前

    有人知道如何使用swf(版本7)并使用SwfLoader或类似的东西从Flex应用程序访问swf中的根变量吗?我尝试了很多事情,但都没有成功。我不想把我所有失败的尝试都弄乱这篇文章,但如果我发现需要作为例子,我会稍后发布。

    只是一些背景:我正在中生成swf文件。NET和我使用的库只能生成版本7之前的swfs。Flex应用程序是用Flex 3构建的。我需要访问swf中的变量。我不在乎它是如何完成的,只要我能做到。无论我是在冒泡事件、使用LocalConnection还是直接访问变量,到目前为止,我都没有运气做到这一点。(不过swf确实会加载…并显示在我的Flex应用程序中)。

    哦,swf没有嵌入。

    2 回复  |  直到 17 年前
        1
  •  1
  •   Jonathan Leffler    14 年前

    ExternalInterface从1.0开始就可用,因此这可能是解决您问题的方法。通过ExternalInterface类,actionscript可以与javascript通信,反之亦然。因此,您可以从swf向javascript函数传递一个变量,并让javascript函数将该变量传递给FLEX应用程序中的函数。我不想写所有的代码,除非这听起来可能是你正在寻找的答案,在这种情况下,让我知道,我会为你写代码,或者只是。..

    过来看: ExternalInterface

        2
  •  0
  •   cliff.meyers    17 年前

    加载以FP8或更早版本为目标的SWF时,它将作为AVM1Movie的实例加载。从文档中:

    AVM1Movie对象可以使用从DisplayObject类继承的方法和属性(如x、y、width等)。但是,不允许AVM1 Movie对象和AVM2对象之间的互操作性(如调用方法或使用参数)

    这是因为FlashPlayer 9+实际上有两个不同的虚拟机,它们不能直接相互通信。

    LocalConnection肯定会在这种情况下工作:我已经在Flex 2应用程序中使用了v7 SWF,并且从v7->Flex2和Flex2->v7。我会看看你是如何设置的,因为它肯定会奏效。

    推荐文章