在自己的机子中做了如下的设置,但在加载VRML文件后,仍然无法运行Java脚本,使用的是JSAI接口。哪位高手知道解决办法,请不吝赐教,在此谢谢了!
一机子设置
1. 安装了Cortona VRML客户端插件,IE能够解析VRML文件。
2. 安装了JDK(1.3.1版本)和JDK(1.6.0_05版本),设置了VRML97.jar包,可以编写和编译JSAI脚本。
3. 设置的JDK环境变量如下:
(1) JAVA_HOME = C:/Program Files/Java/jdk1.3.1_16
(2) CLASSPATH =
.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/vrml97.jar
(3) PATH = %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;
4. IE->选项->高级中的设置如下图:
二代码
VRML文件如下:
#VRML V2.0 utf8
Shape
{
geometry DEF text Text
{
string "Hello!"
}
}
DEF Controller Script
{
field SFNode text USE text
url "JSAITextChanged.class"
}
脚本JSAITextChanged.class源码如下:
import java.awt.*;
import java.awt.event.*;
import vrml.*;
import vrml.field.*;
import vrml.node.*;
publicclass JSAITextChanged extends Script {
private MFString textNode = null;
publicvoid initialize()
{
Node node = (Node)((SFNode)getField("text")).getValue();
textNode = (MFString)(node.getExposedField("string"));
PopupWindow p = new PopupWindow();
//p.pack();
p.setVisible(true);
}
privatevoid setText(String s)
{
String[] str = new String[1];
str[0] = s;
textNode.setValue(str);
}
class PopupWindow extends Frame
{
private Label red = new Label("Please input text");
private TextField text = new TextField("Hello!");
private Button submit = new Button("OK");
public PopupWindow()
{
FlowLayout f = new FlowLayout();
setLayout(f);
f.setHgap(5);
add(red);
add(text);
add(submit);
add(submit);
submit.addActionListener(new ActionListener()
{
publicvoid actionPerformed(ActionEvent e)
{
setText(text.getText());
}
});
}
}
}
本文描述了在一个VRML场景中集成Java脚本(JSAI)的过程及遇到的问题。作者详细记录了配置环境、编写脚本的具体步骤,但Java脚本仍无法正常运行。该文寻求解决Java脚本在VRML中无法执行的问题。
890





