首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >as3定时器打开和关闭外部设备

as3定时器打开和关闭外部设备
EN

Stack Overflow用户
提问于 2015-03-04 13:23:16
回答 1查看 60关注 0票数 0

我正在试着给一个Phidgets设备编程,让它在.5秒内重复打开外部灯,在.5秒内关闭外部灯。

(这些时间对应于20帧影片剪辑的第1帧和第11帧。

我已经尝试将开和关命令插入到影片剪辑中,但它们不会转移到主舞台,所以现在我只是尝试从主程序对灯光进行编程,使其开和关

下面的代码同时打开和关闭灯-这意味着什么都没有发生。有谁知道如何延迟计时器,使off命令比on命令晚500毫秒?谢谢

代码语言:javascript
复制
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
     }
EN

回答 1

Stack Overflow用户

发布于 2015-03-04 13:34:56

看起来您正在创建两个计时器,这两个计时器都以500ms的间隔同时运行。

把一个函数放在一个500ms的定时器上可能更容易,它会间歇性地调用任何一个函数,比如

代码语言:javascript
复制
var lightIsOn = false;
function lightToggle(evt:TimerEvent):void{
    if(lightIsOn){
        lightOff();
    }else{
        lightOn();
    }
    lightIsOn = !lightIsOn;
}

--更新

我不是很熟悉Phidgets,但是这在这种情况下应该不会有什么不同。试试这个:

代码语言:javascript
复制
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函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28847192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档