|   | 
  
  
    | 域 | 
  
  
    | cycleInterval | 
    每个周期的长度,以秒为单位,取值大于0。 | 
  
  
    | enabled | 
    若为TRUE,当条件成立时产生时间相关事件;若为FALSE,在任何条件下都不会产生时间相关事件。无论enabled为TRUE或FALSE,通域的 set_事件都被处理并产生_changed事件。 |  
  
 
   
    | loop |  
    表明时间传感器是无限循环,还是在一个周期后被终止。 |  
  
 
   
    | stsrtTime |  
    开始产生事件的时间。 |  
  
 
   
    | stopTime |  
    终止产生事件的时间。其值若小于等于起始时间,则被忽略。 |  
  
 
   
    |        
     |    
  
   
  
    |   事件   
     |    
  
   
  
    |   isActive   
     |    
      eventOut    SFBool  
      表明时间传感器当前是否在运行。若在运行,则返回TRUE;若处于停止状态,则返回FALSE。    
     |     
  
    
   
    |   cycleTime    
     |     
      eventOut    SFTime  
      在每个周期开始时,返回当前时间。    
     |     
  
    
   
    |   fraction_changed    
     |     
      eventOut    SFloat  
      当前周期的完成比。从0(周期开始)到1(周期结束)。    
     |     
  
    
   
    |   time    
     |     
      eventOut    SFTime  
      从格林威治时间1970年1月1日子时(午夜12点)至今所经过的秒数。    
     |     
  
    
   
    |        
     |     
  
    
   
    |       说明    
     |     
  
    
      
    |      
              随着时间的推移,TimeSensor节点产生事件。它能被用来生成动画(通常与插值器一起),能在一个指定时间引发一个动作或者以固定时间间隔产生事件。    
            通常情况下,时间传感器的starTime被另一个对用户动作作串反应的传感器或脚本传来的时间事件设置。在startTime设定的时刻以前,时间传感器不做任何工作。在该时刻到来时,它产生值为 TRUE的 isActive事件,并开始产生 time、fraction_ 
      changed和cycleTime事件。     
          time事件是总保持有一个当前时刻值的连续发生的事件。而产生的其它与时间相关的事件是周期性发生的事件。当loop为FALSE时,时间传感器仅仅运行cycleInterval中设置的一个时间周期(或在第一个周期完成前到达stopTime中设定的时间);而当loop为TRUE时,时间传感器不断地运行,直到到达stopTime中设定的时间或 enabled被设置为FALSE。在每个周期的开始,时间传感器发出fractdri_changed事件(值为0)和cycleTime事件(值为当前时间)。在每一个周期中,当浏览器允许传感器产生一个事件时(通常每帧一次),fraction_     
      changed的值从0增加到1,表明当前周期已完成多少。在fraction_changed值为1时,当前周期结束,新的周期开始。     
          cycleTime事件仅仅在周期开始时产生。若要生成一个~次性事件如闹钟,则应把start_Time设置为期望时间,把loop设置为FALSE。这样在startTime到来时,该时间传感器只运行一个周期。     
          在产生时间相关事件时,时间传感器忽略set_cycleInterval和set_startTime事件。cycleInterval和startTime域的值将不会发生变化,而且不会产生 
      cycleInterval_changed和startTime_changed事件。若想要重启一个时间传感器,应该首先发送一个与当前时间值相同的set_stopTime事件来停止当前的时间传感器,再发送一个set_startTime事件。    
          当一个活动的时间传感器收到一个set_stopTime事件时,若值大于startTime的值但小于当前的时间值,则它将把stopTime设定为指定值。但像stopTime中设置的时间是当前时间那样,发出结束事件。若set_stopTime事件值小于等于startTime的值,则这一事件将被忽略。    
          设置loop为TRUE时,时间传感器在startTime到来时开始产生事件,事件将不断地产生或在stopTime到来时停止(如果stopTime大于startTime)。如果希望当浏览器加载一个环境时时间传感器立刻被激活,应将loop设置为TRUE,让startTime和stopTime保持缺省值(或将它们设置成stopTime小于等于startTime的任何值)。    
          当时间传感器运行时将loop从TRUE改变为FALSE,传感器将在当前周期结束时或者stopTime到来时停止运行(取决于这两个事件谁先发生)。    
          
      时间传感器不保证以某种频率产生时间相关事件,但是大多数浏览器在绘制动画的每一帧时,产生这些事件。    
      |