我正在開發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