我正在开发Flex应用程序,我需要从Flex中打开Java Applet(例如,单击按钮)。特别是我想打开imageJ,一个特定的图像程序,可以作为应用程序,applet或集成到网页中。有没有办法从Flex调用它?我见过一些教程,解释如何从Flex调用另一个Java文件中的单个函数,但我不确定这是我正在寻找的。 谢谢您的回答, 欢呼声,从Flex调用Java Applet
大卫
我正在开发Flex应用程序,我需要从Flex中打开Java Applet(例如,单击按钮)。特别是我想打开imageJ,一个特定的图像程序,可以作为应用程序,applet或集成到网页中。有没有办法从Flex调用它?我见过一些教程,解释如何从Flex调用另一个Java文件中的单个函数,但我不确定这是我正在寻找的。 谢谢您的回答, 欢呼声,从Flex调用Java Applet
大卫
我不知道是否有更好的办法,但如果我这样做,我会写一个JavaScript函数,将加载Java小程序(可以像document.write("<object …>")
一样简单),然后使用Flex的ExternalInterface来调用该JavaScript。
在您的applet中公开一个公用方法,flex会调用它。您可以通过以下方式加载小程序。这是一个示例程序,调用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";
}
}
快乐编码。
是的 - 你真的想要用ExternalInterface – Goyuix 2010-03-11 23:06:43