PROTO slide-vcr [ exposedField SFTime startTime 0 exposedField SFTime stopTime 0 exposedField MFString video [] exposedField SFFloat loudness 1 exposedField SFVec3f translation 0 0 0 exposedField SFVec3f scale 1 1 1 exposedField SFRotation rotation 0 1 0 0 exposedField SFVec3f size 1 1 0.1 ]{ Transform { translation IS translation scale IS scale rotation IS rotation children [ DEF root Transform { scale 1 1 1 children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 } texture DEF movie MovieTexture { startTime IS startTime stopTime IS stopTime loop TRUE url IS video } } geometry Box { size IS size } } DEF sound Sound { source USE movie intensity IS loudness } Transform { translation 0 0 0.2 children [ DEF touch TouchSensor {} Shape { appearance Appearance { material Material { diffuseColor 1 0 0 transparency 1 } } geometry Box { size IS size } } DEF script Script { directOutput TRUE eventIn SFTime touch field SFNode movie USE movie field SFNode sound USE sound field SFInt32 state 0 field SFVec3f size IS size field SFBool on TRUE url "javascript: function initialize() { // root.scale = new SFVecf(size.x,size.y,size.z); } function touch(value) { print('state = ' + state); if (state == -1) { } else if (state == 0) { movie.startTime = value; movie.stopTime = 0; sound.intensity = 1; on = TRUE; state = 1; } else if (state == 1) { movie.stopTime = value; on = FALSE; state = 0; } else if (state == 3) { sound.intensity = 0; state = 1; } } " } ROUTE touch.touchTime TO script.touch ## initially forgotten! ] } ] } ## root ] } }