【问题标题】:Calling ActionScript from Python. Is that possible?从 Python 调用 ActionScript。那可能吗?
【发布时间】:2011-04-13 16:22:47
【问题描述】:

如果 swf 文件嵌入在 html 中,则很容易使用 JavaScript 通过 ExternalInterface 调用 ActionScript 方法。 现在我想在浏览器之外使用 swf 文件并且仍然能够访问它的方法,但现在我想使用 Python 来调用 ActionScript。可能吗? 互联网上关于它的信息太少了。 或许我可以为此使用 AMF (pyAmf),可以吗?

提前致谢。

【问题讨论】:

    标签: python flash actionscript-3


    【解决方案1】:

    如果您想在浏览器之外以这种方式使用 swf,请调查 AIR 或 localconnection。

    [编辑] 你可以使用 Python 来监听 ExternalInterface 事件。 osflash.org 有一些你可以研究的东西,虽然有点过时:

    http://osflash.org/ext_howto

    或一些 Python 示例:

    def ExternalCall(self,evt):
        print "ExternalCall", evt.request
        ret = "<object><property><string>Sample data</string></property></object>"
        self.movie.SetReturnValue(ret)
    

    【讨论】:

    • 您能详细说明一下吗?我对 AcrionScript/Flash/AIR 等完全陌生。我需要的是围绕现有的 flash 应用程序(swf 文件)构建某种包装器。应用程序通过 ExternalInterface 公开一些 API。而且我需要能够在浏览器之外访问该 API。
    【解决方案2】:

    您的 swf 可以监听与Socket 的连接,就像一个服务器一样。 ByteArray.readObject 可以从消息字节中读取 AMF 格式的对象,因此您可以在对象中编码方法名称和参数。

    【讨论】:

    • 如果我可以访问应用程序的源代码,这可能是一个解决方案。但我只有一个已发布的应用程序版本。所以看来我唯一的选择就是通过 ExternalIntrface 访问它。但是我不知道如何在浏览器之外进行操作。
    • 您应该在问题中提及您的具体情况。您问 Python 是否可以与 AS3 通信,但您的问题比这更具体; Python可以使用已经建立的ExternalInterface回调吗?
    • 是的,很抱歉。因此,您的评论最准确地描述了我需要实现的目标。
    • 如果 swf 在独立播放器中播放,则根本没有 ExternalInterface。 Zophiel 找到的链接 (osflash.org/ext_howto) 谈到了 ActiveX Flash 对象,即嵌入到某些程序中。所以你需要看看如何做到这一点,然后建立 ExternalInterface 链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2019-08-02
    • 2011-07-03
    相关资源
    最近更新 更多