2009-12-22 65 views
0

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

大卫

回答

1

我不知道是否有更好的办法,但如果我这样做,我会写一个JavaScript函数,将加载Java小程序(可以像document.write("<object …>")一样简单),然后使用Flex的ExternalInterface来调用该JavaScript。

+0

是的 - 你真的想要用ExternalInterface – Goyuix 2010-03-11 23:06:43

0

在您的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"; 
} 
} 

快乐编码。