Actionscript 3 as3定时器打开和关闭外部设备
我正在尝试对Phidgets设备进行编程,以重复打开外部灯0.5秒,关闭外部灯0.5秒 (这些时间对应于20帧电影剪辑的第1帧和第11帧 我试着在电影剪辑中插入“开”和“关”命令,但它们不会转移到主舞台,所以现在我只是试着在主程序中设置灯光的开和关 下面的代码同时打开和关闭指示灯-这意味着什么也没有发生。 有人知道如何延迟计时器,使off命令在on命令后500毫秒发出吗? 谢谢Actionscript 3 as3定时器打开和关闭外部设备,actionscript-3,timer,Actionscript 3,Timer,我正在尝试对Phidgets设备进行编程,以重复打开外部灯0.5秒,关闭外部灯0.5秒 (这些时间对应于20帧电影剪辑的第1帧和第11帧 我试着在电影剪辑中插入“开”和“关”命令,但它们不会转移到主舞台,所以现在我只是试着在主程序中设置灯光的开和关 下面的代码同时打开和关闭指示灯-这意味着什么也没有发生。 有人知道如何延迟计时器,使off命令在on命令后500毫秒发出吗? 谢谢 看起来您正在创建两个计时器,它们都以500毫秒的间隔同时运行 将一个函数放在500毫秒计时器上可能更容易,它会间歇性地
看起来您正在创建两个计时器,它们都以500毫秒的间隔同时运行 将一个函数放在500毫秒计时器上可能更容易,它会间歇性地调用任何一个函数,比如
var lightIsOn = false;
function lightToggle(evt:TimerEvent):void{
if(lightIsOn){
lightOff();
}else{
lightOn();
}
lightIsOn = !lightIsOn;
}
----更新----
我对Phidges不太熟悉,但在这种情况下,这不会有什么不同。请尝试以下方法:
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.
如果你只想每0.5秒切换一次,那么你就不必担心读取灯光的状态,只要告诉它何时更改即可。因此,从我所知,你不需要inputChange功能。非常感谢你的回复,尝试根据你的建议修改我的代码,下面的Phidges行话代码将永远打开灯光。需要以1赫兹重复循环(500毫秒开启,500毫秒关闭)功能输入更改(evt:PhidgetEvent):无效{if(phid.getOutputState(0)){if(val=true){val=false;}}}}。提前感谢val=true;var phidControl:Timer=new Timer(50050000);phidControl.addEventListener(TimerEvent.TIMER,lightOn);函数lightOn(evt:TimerEvent):void{phid.setOutputState(0,val);}非常感谢您的回复,我刚刚花了2个小时试图根据您的建议和Phidgets行话修改我的代码下面的代码永远亮着灯。我需要它以1 HZ(500毫秒打开,500毫秒关闭)重复循环。我在做什么蠢事吗?提前感谢val=true;var phidControl:Timer=new Timer(50050000);phidControl.addEventListener(TimerEvent.TIMER,lightOn);函数lightOn(evt:TimerEvent):void{phid.setOutputState(0,val);}
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.