TimeSensor节点

TimeSensor {
cycleInterval 1 # exposed field SFTime
enabled TRUE # exposed field SFBool
loop FALSE # exposed field SFBool
stsrtTime 0 # exposed field SFTime
stopTime 0 # exposed field SFTime
}

 
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到来时停止运行(取决于这两个事件谁先发生)。
    时间传感器不保证以某种频率产生时间相关事件,但是大多数浏览器在绘制动画的每一帧时,产生这些事件。


主页 节点说明 来信