我正在尝试编写一个Phidgets设备,重复打开外部灯,持续0.5秒,然后关闭0.5秒。
(这些时间对应于20帧影片剪辑的第1帧和第11帧。
我试图将开启和关闭命令插入到影片剪辑中,但它们不会转移到主舞台,所以现在我只是尝试将灯光编程到从主程序开始和结束
以下代码在相同的时间打开和关闭灯 - 这意味着什么都不发生。 有没有人知道如何延迟计时器,以便关闭命令在开启命令后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
}
答案 0 :(得分:0)
看起来您正在创建两个同时以500毫秒间隔运行的定时器。
将一个函数放在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.
如果您只想每隔0.5秒切换一次,那么您不必担心读取灯光的状态,只需告诉它何时更换。所以从我所知道的,你不需要inputChange函数。