media @ VU
[] readme course preface I 1 2 II 3 4 III 5 6 7 IV 8 9 10 V 11 12 afterthoughts appendix references examples resources _

talk show tell print

proto-slide-interface-keyboard.vr

proto-slide-interface-keyboard.vr (wrl ) [ flux / bitmanagement / cortona / octaga ]


  

keys

Web3D/VR

info


  
  
  ##
  
  
  ##
  
  
  
  

proto


  
  PROTO SlideKeys [
  exposedField SFNode slide_set NULL
  ]{
  

body


  DEF KEYBOARD_INTERFACE Script {
      field    SFNode   me          USE KEYBOARD_INTERFACE
      field    SFInt32  oldMask     0
      field    SFNode   slide_set   IS slide_set
  
      eventIn  SFNode   onEvent
  
      field    SFInt32  previousKey 8
      eventOut SFTime   previous
  
      field    SFInt32  nextKey     32
      eventOut SFTime   next
  

functions


      url "vrmlscript:
          function initialize()
          {
              // tell what events
              oldMask = Browser.eventMask;
              Browser.eventMask = 1<<5; // KeyDown Only...
              // add event observer
              Browser.addRoute(Browser,'event_changed',me,'onEvent');
              Browser.addRoute(me,'previous',slide_set,'previous');
              Browser.addRoute(me,'next',slide_set,'next');
          }
          function shutdown()
          {
              // remove event observer
              Browser.eventMask = oldMask;
              Browser.deleteRoute(Browser,'event_changed',me,'onEvent');
              Browser.deleteRoute(me,'previous',slide_set,'previous');
              Browser.deleteRoute(me,'next',slide_set,'next');
          }
  

events


          function onEvent(e,t) {
              if(e.type == 'keydown') {
                  if(e.keyCode==previousKey) { 
                      previous = t;
                      e.returnValue = false;
                  } else { if(e.keyCode==nextKey) {
                      next = t;
                      e.returnValue = false;
                  }}
              } 
          }
      "
  }
  
  }
  
  


(C) A. Eliëns 21/5/2007

You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.