我正在试着给一个Phidgets设备编程,让它在.5秒内重复打开外部灯,在.5秒内关闭外部灯。
(这些时间对应于20帧影片剪辑的第1帧和第11帧。
我已经尝试将开和关命令插入到影片剪辑中,但它们不会转移到主舞台,所以现在我只是尝试从主程序对灯光进行编程,使其开和关
下面的代码同时打开和关闭灯-这意味着什么都没有发生。有谁知道如何延迟计时器,使off命令比on命令晚500毫秒?谢谢
phid.addEventListener(PhidgetEvent.ATTACH,onAttach);
//connects Phidget to software
function onAttach(evt:PhidgetEvent):void{
trace(evt);
}
var phidControl:Timer = new Timer (500);
phidControl.addEventListener(TimerEvent.TIMER, lightOn);
function lightOn (evt:TimerEvent):void {
phid.setOutputState(0, true);} //this turns the light on
enter code here
var phidOff:Timer = new Timer(500);
phidControl.addEventListener(TimerEvent.TIMER, lightOff);
function lightOff(evt:TimerEvent):void {
phid.setOutputState(0, false);//this turns light off
}发布于 2015-03-04 13:34:56
看起来您正在创建两个计时器,这两个计时器都以500ms的间隔同时运行。
把一个函数放在一个500ms的定时器上可能更容易,它会间歇性地调用任何一个函数,比如
var lightIsOn = false;
function lightToggle(evt:TimerEvent):void{
if(lightIsOn){
lightOff();
}else{
lightOn();
}
lightIsOn = !lightIsOn;
}--更新
我不是很熟悉Phidgets,但是这在这种情况下应该不会有什么不同。试试这个:
val = true;
var phidControl:Timer = new Timer(500); //If you don't set the repeat count it goes on forever
phidControl.addEventListener(TimerEvent.TIMER, lightToggle);
function lightToggle(evt:TimerEvent):void {
val = !val;
phid.setOutputState(0,val);
}
phidControl.start(); //Make sure you start the timer.如果你只想每.5秒切换一次,那么你不必担心读取灯光的状态,只需告诉它何时更改即可。因此,据我所知,您不需要inputChange函数。
https://stackoverflow.com/questions/28847192
复制相似问题