#VRML V2.0 utf8 NavigationInfo { type "NONE" } Shape { geometry DEF time1 Text { fontStyle FontStyle { justify "MIDDLE" size 2.8 } } appearance Appearance { material DEF time1material Material { diffuseColor 1 1 1 } } } Shape { geometry DEF time2 Text { fontStyle FontStyle { justify "MIDDLE" size 2.8 } } appearance Appearance { material DEF time2material Material { diffuseColor 1 1 1 } } } DEF count TimeSensor { loop TRUE cycleInterval 1 } DEF text1 ScalarInterpolator{ key [ 0, 1 ] } DEF text2 ScalarInterpolator{ key [ 0, 1 ] } DEF timeScript Script { eventIn SFTime clock directOutput TRUE field SFNode timeOut1 USE time1 field SFNode timeOut2 USE time2 field SFNode transOut1 USE text1 field SFNode transOut2 USE text2 field SFBool toggle TRUE url "javascript: function clock(){ var Digital=new Date() var hours=Digital.getHours() var minutes=Digital.getMinutes() var seconds=Digital.getSeconds() var ending='AM' if (hours>12){ ending='PM' hours=hours-12 } if (hours==0) hours=12 if (minutes<=9) minutes='0'+minutes if (seconds<=9) seconds='0'+seconds var ctime=hours+':'+minutes+':'+seconds+' '+ending textString = new MFString(); textString[0] = ctime if (toggle){ transOut1.set_keyValue[0]=0.7 transOut1.set_keyValue[1]=0 transOut2.set_keyValue[0]=0 transOut2.set_keyValue[1]=0.7 timeOut1.set_string = textString; toggle=FALSE } else { transOut1.set_keyValue[0]=0 transOut1.set_keyValue[1]=0.7 transOut2.set_keyValue[0]=0.7 transOut2.set_keyValue[1]=0 timeOut2.set_string = textString; toggle=TRUE } } " } ROUTE count.cycleTime TO timeScript.clock ROUTE count.fraction_changed TO text1.set_fraction ROUTE count.fraction_changed TO text2.set_fraction ROUTE text1.value_changed TO time1material.set_transparency ROUTE text2.value_changed TO time2material.set_transparency