不好意思,只写了类实现没写用法,现写了一个示例,限于篇幅,另写一篇。
欲了解更多MultiTimer的细节请看这里。
这篇只写MultiTimer的使用。
先看MultiTimer的类公共API声明。
/**
* MultiTimer 用法
*
* 构造函数
* @param delay 执行timerFunc的时间间隔,也就是completeFunc调用的精度
* public function MultiTimer(delay:int);
*
*
*
* 这个方法可以在任何时候调用
* 添加一个事件,其实就是一个回调函数,类似于 setInterval(func, delay, args..) 里的 func,都是回调函数
*
* 只有time参数是必须的, 其他参数可以设置为null,
* 当然 completeFunc 和 timerFunc 都为null 也没什么效果的O(∩_∩)O哈哈~
*
* @param time 运行的时间, 单位:ms
* @param completeFunc 结束时函数
* @param completeArgs 结束时函数的参数
* @param completeThis 结束时函数的this对象, 这个参数只有在 func 不是类的成员函数时有用
* @param timerFunc timer时的函数
* @param timerArgs timerFunc的参数列表
* @param timerThis timerFunc的this对象, 这个参数只有在 func 不是类的成员方法时有用
* public function addTimer(time:int,
* completeFunc:Function = null, completeArgs:Array = null, completeThis:Object=null,
* timerFunc:Function = null, timerArgs:Array = null, timerThis:Object = null):void;
*/
下面写个示例:
package
{
import com.litefeel.utils.MultiTimer;
import flash.display.Sprite;
import flash.utils.getTimer;
/**
* www.litefeel.com
* lite3@qq.com
* @author lite3
*/ public class MultiTimerExample extends Sprite
{
private var beginTime:int;
private var multiTimer:MultiTimer;
public function MultiTimerExample()
{
beginTime = getTimer();
// 要先实例化才能用, 参数为 精度,相当于 new Timer(t)的t 参数
multiTimer = new MultiTimer(100);
/**
* 添加一个事件,其实就是一个函数,这个函数会以回调的方式调用
* 支持 传入参数
*/
multiTimer.addTimer(1000, completeHandler, ["function1", 1000], null, timerHandler, ["function1", 1000]);
multiTimer.addTimer(2000, null, null, null, timerHandler, ["function2", 2000]);
multiTimer.addTimer(3000, completeHandler, ["function3", 3000]);
}
private function timerHandler(name:String, time:int):void
{
trace("timerHandler!这是:", name, "\t持续时间:", time);
}
private function completeHandler(name:String, time:int):void
{
trace("completeHandler!这是:", name, "\t持续时间:", time, "\t实际用时:", getTimer() -beginTime);
if ("function3" == name)
{
time = getTimer();
// 不同的时间添加事件
multiTimer.addTimer(1000, null, null, null, timerHandler, ["重启后的function3", 1000]);
}
}
}
}
运行后,您会看到类似下面的输出
timerHandler!这是: function1 持续时间: 1000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function1 持续时间: 1000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function1 持续时间: 1000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function1 持续时间: 1000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function1 持续时间: 1000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function1 持续时间: 1000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function1 持续时间: 1000
completeHandler!这是: function1 持续时间: 1000 实际用时: 1102
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function2 持续时间: 2000
timerHandler!这是: function2 持续时间: 2000
completeHandler!这是: function3 持续时间: 3000 实际用时: 3100
timerHandler!这是: 重启后的function3 持续时间: 1000
timerHandler!这是: 重启后的function3 持续时间: 1000
timerHandler!这是: 重启后的function3 持续时间: 1000
timerHandler!这是: 重启后的function3 持续时间: 1000
timerHandler!这是: 重启后的function3 持续时间: 1000
timerHandler!这是: 重启后的function3 持续时间: 1000
» 转载请注明来源:www.litefeel.com » 《MultiTimer 用法》
» 本文链接地址:https://www.litefeel.com/use-multitimer/
» 订阅本站:www.litefeel.com/feed/
» Host on Linode VPS
» 本文链接地址:https://www.litefeel.com/use-multitimer/
» 订阅本站:www.litefeel.com/feed/
» Host on Linode VPS
This post was last modified on 2019 年 03 月 04 日 01:15
View Comments (2)
之前也实现过。如果单一,但是参数实在太多了。
第一个参数是必须的,其他参数都是可选的啊