从Flex调用Java Applet

时间:2009-12-22 07:58:57

标签: flex applet

我正在开发Flex应用程序,我需要从Flex打开一个Java Applet(例如,单击一个按钮)。特别是我想打开imageJ,这是一个特定的成像程序,可以作为应用程序,applet或集成在网页中。有没有办法从Flex调用它?我已经看过几个教程,解释如何从Flex调用另一个Java文件中的单个函数,但我不太确定它是我正在寻找的。 谢谢你的回答, 欢呼声,

大卫

2 个答案:

答案 0 :(得分:1)

我不知道是否有更好的方法,但如果我这样做,我会编写一个JavaScript函数来加载Java applet(可能就像document.write("<object …>")一样简单),然后使用Flex的ExternalInterface称之为JavaScript。

答案 1 :(得分:0)

在你的applet中公开一个公共方法,flex会调用它。您可以通过以下方式加载applet。这是一个示例程序,要调用java方法并从java获取值,您可以根据需要进行更改

    <object
    id = "MyApplet"
    name = "Some name"
    classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="0" height="0">
    <PARAM NAME = "CODE" VALUE = "com.my.applet.MyApplet.class" >
    <PARAM NAME = "CODEBASE" VALUE = "." >
    <PARAM NAME = "ARCHIVE" VALUE = "applet-client.jar" >
    <PARAM NAME = "cache_option" VALUE="No">

    <PARAM NAME = "java_version" VALUE="1.6+">
    <param name = "type" value = "application/x-java-applet;version=1.6">
    <comment>
        <embed
            name = "MyApplet"
            type = "application/x-java-applet;version=1.6" \
            CODE = "com.my.applet.MyApplet.class" \
            JAVA_CODEBASE = "." \
            ARCHIVE = "applet-client.jar"
            cache_option = "No"
            scriptable = false
            pluginspage = "http://java.sun.com/products/plugin/index.html#download"
            width="0" height="0"
        >
            <noembed>
            </noembed>
        </embed>
    </comment>

</object>

使用上面的html文件(我没有解释所有内容),applet将被下载并准备使用。现在点击你的Flex应用程序上的按钮,你应该有类似下面的内容。

var returnedStringFrom java:String=ExternalInterface.call("document.MyApplet.functionInJava",stringParam);

注意:MyApplet是上面对象声明中的名称,functionInJava是java类com.my.applet.MyApplet中的公共函数。它接受一个参数并返回一个字符串参数。 Java程序如下所示。

package com.my.applet;

public class MyApplet{
//other methods..

public String functionInJava(String stringpm){

// your implementation 
return "SomeString";
}
}

快乐的编码。