【问题标题】:Flash game inside java applicationjava应用程序中的Flash游戏
【发布时间】:2012-05-21 05:03:09
【问题描述】:

我想把我用 CS.5 制作的一个 Flash 游戏(它被导出为一个 .swf)放到一个 java 应用程序中。通过研究,我发现一些方法可能是使用嵌入式网络浏览器或某种 Flash 播放器:

Embed .swf file to my Jframe
Embed a web browser within a java application

但这是最好的方法吗?它会保持交互性(即游戏)吗?如果嵌入式 Web 浏览器显示 back/front/url/etc,它也将完全适合。按钮然后我不能使用它

那么最好的方法是什么? java 应用程序中的 Flash 播放器是否会保持交互性(游戏的工作方式与在 Web 浏览器或 Flash 播放器应用程序中的工作方式相同)?

【问题讨论】:

标签: java flash flash-cs5.5


【解决方案1】:

您可以使用 swf COM API ExternalInterface.call() 与 swf 应用程序进行通信。

但它只支持动作脚本 3 及更高版本。

【讨论】:

  • 我的游戏是用actionscript 3制作的,我该怎么做?
  • 我不用swing,我用swt。但是swf api是一样的。
  • 那我该怎么做呢?或者你有一个链接到某个地方可以解释如何做到这一点?
  • 我看了一下 JFlashPlayer API,它只支持 FSCommand API,但是太旧了,不能在 ActionScript 3 上工作。也许你应该找到另一个支持 ExternalInterface.call() 的 java api。
【解决方案2】:
    public void callFunction( String function, String params )
    {
        if ( !created )
            return;
        String request = "<invoke name=\""
                + function
                + "\"><arguments><string>"
                + params
                + "</string></arguments></invoke>";
        Variant[] args = new Variant[1];
        args[0] = new Variant( request );
        flashObject.invokeNoReply( DISPID_CALLFUNCTION, args );
}

这是一个swt swf调用函数的实现。

您可以实现一个 swf 容器,这很容易。 JNative、JNA等一些JNI jars可以帮到你。

我实现了一个win32库swt-win32-extension.jar,里面包含了一个自定义的swf容器,但是swing不能使用它。

【讨论】:

  • 一个好消息。 JFlashPlayer2.2 支持 ExternalInterface.call()。 brothersoft.com/jpackages-jflashplayer-77667.html
  • 我在这里的 zip 中找到了它fileol.com/developer-tools/jpackages-jflashplayer-2.2-free.html 它也适用于 mac 吗?
  • 也许你必须自己实现这个功能。您可以使用 JNA 实现它。 JNA是一个java库,可以通过java代码调用native api。
  • 1.你应该学习 JNA api,你可以从:jna.java.net 下载它。 2. 你应该学习如何在你的摇摆面板中封装一个闪光灯。 3.你应该学习如何使用ExternalInterface.call()与swf通信。我在win32平台上搜索过,不是很难。 mac我不是很清楚。
  • actionscript 3如果有动画、动态文本等,转换成java有多难
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多