2011-10-05 5 views

답변

1

당신은 프로토 타입의 TouchSensor에서 이벤트를 노출 IS을 사용합니다. 예를 들어

:

#VRML V2.0 utf8 

# First, define the prototype "plate". 
PROTO plate [ 
    eventOut SFTime touched 
    exposedField SFVec3f translation 0 0 0 
]{ 

    Transform { 
     translation IS translation 
     children Shape{ 
      appearance Appearance {material Material {}} 
      geometry Sphere{} 
     } 
    } 
    TouchSensor{touchTime IS touched} 
} 


# Then create one or several instances of the object 
DEF plate1 plate{translation -2 0 0} 
DEF plate2 plate{translation 2 0 0} 



DEF myscript Script{ 
    eventIn SFTime receive_event 
    url "javascript: 
    function receive_event(){ 
     trace('A sphere was clicked'); 
    } 
    " 
} 

# Each instance had a different DEF name, so you can choose where to send the event independently from each other 
# but for the example, I send them both to a script that says in the console when it was clicked 
ROUTE plate1.touched TO myscript.receive_event 
ROUTE plate2.touched TO myscript.receive_event