Help! I have a PROTOTYPE called lamp. It has three rotation points: The LampShade The FirstArm The SecondArm Anytime these rotation points change, I want to inform my applet. The Problem: I am not informed of all three events. It will only informs me of one of the three. Usually, the first part of the lamp I rotate will be the event sent. The other events are ignored. Attached is a short WORKING example of the problem. Any help would greatly be appreciated. Chris Gokey **************************** TEST.WRL ************************** #VRML V2.0 utf8 PROTO Lamp [ exposedField SFRotation rotation1 1.0 0.0 0.0 -0.7 exposedField SFRotation rotation2 1.0 0.0 0.0 1.9 exposedField SFRotation rotation3 1.0 0.0 0.0 -1.25 ] { Group { children [ # Lamp DEF MoveLamp PlaneSensor { }, DEF Lamp Transform { children [ # Lamp base Shape { appearance DEF White Appearance { material Material { } } geometry Cylinder { radius 0.1 height 0.01 } }, # Base - First arm joint Group { children [ DEF MoveFirstArm SphereSensor { offset 1.0 0.0 0.0 -0.7 }, DEF FirstArm Transform { translation 0.0 0.15 0.0 rotation IS rotation1 center 0.0 -0.15 0.0 children [ # Lower arm DEF LampArm Shape { appearance USE White geometry Cylinder { radius 0.01 height 0.3 } }, # First arm - second arm joint Group { children [ DEF MoveSecondArm SphereSensor { offset 1.0 0.0 0.0 1.9 }, DEF SecondArm Transform { translation 0.0 0.3 0.0 rotation IS rotation2 center 0.0 -0.15 0.0 children [ # Second arm USE LampArm, # Second arm - shade joint Group { children [ DEF MoveLampShade SphereSensor { offset 1.0 0.0 0.0 -1.25 }, DEF LampShade Transform { translation 0.0 0.075 0.0 rotation IS rotation3 center 0.0 0.075 0.0 children [ # Shade Shape { appearance USE White geometry Cone { height 0.15 bottomRadius 0.12 bottom FALSE } } ] } ] } ] } ] } ] } ] } ] } ] } ROUTE MoveFirstArm.rotation_changed TO FirstArm.set_rotation ROUTE MoveSecondArm.rotation_changed TO SecondArm.set_rotation ROUTE MoveLampShade.rotation_changed TO LampShade.set_rotation } Transform { children DEF LampA Lamp {} } *************************** test.java *************************** import netscape.javascript.JSObject; public class test extends java.applet.Applet implements EventOutObserver{ Browser browser; Node root; public void init() { // get the browser JSObject win = JSObject.getWindow(this); JSObject doc = (JSObject)win.getMember("document"); JSObject embeds = (JSObject)doc.getMember("embeds"); browser=(Browser)embeds.getSlot(0); } public void start() { // Setup Callback Routines for Lamp Events Node x=browser.getNode("LampA"); x.getEventOut("rotation1_changed").advise(this,x); x.getEventOut("rotation2_changed").advise(this,x); x.getEventOut("rotation3_changed").advise(this,x); } public void callback(EventOut value, double timestamp, Object data) { EventOutSFRotation x = (EventOutSFRotation)value; float[] y = x.getValue(); System.out.println("\nRotation Changed"); for (int i=0; i<4; i++) System.out.println(y[i]); } } ******************************** TEST.HTML ************************* <HTML> <BODY> <EMBED SRC="test.wrl" WIDTH="750" HEIGHT="750"> <APPLET CODE="test.class" MAYSCRIPT> </APPLET> </BODY> </HTML> ------------------------------------------------------------------- *** Please send administrative requests to <majordomo@sdsc.edu> *** -------------------------------------------------------------------