timer.stop后timer.currentCount没有重置,timer.reset后,currentCount重置了。
package game.mananger
{
import flash.events.TimerEvent;
import flash.utils.Dictionary;
import flash.utils.Timer; /**
*提供 一个 1秒间隔不断跑的timer,可以注册几秒钟回调,
* 用于提高性能,全局仅有这一个timer
* @author Administrator
*
*/
public class GTimerManager extends BaseManager
{
private var _timer:Timer;
private var _funAry:Array;
public function GTimerManager()
{
if(!_timer)
{
_timer = new Timer();
_timer.addEventListener(TimerEvent.TIMER,_interval);
_timer.start(); _funAry = [];
}
}
private function _interval(evt:TimerEvent):void
{
var len:int = _funAry.length;
for(var i:int = ;i<len;i++)
{
var info:GFunInfo = _funAry[i];
if(info.isReset)
{
info.temp ++;
if(info.temp % info.delay == ){
if(info.fun!=null)
{
info.fun();
}
}
}else if(_timer.currentCount % info.delay == )
{
if(info.fun!=null)
{
info.fun();
}
}
}
}
/**
*注册函数进去
* @param fun
* @param senconds 几秒间隔
*/
public function add(struct:GFunInfo):void
{
if(_funAry.indexOf(struct)==-)
{
_funAry.push(struct);
if(struct.isReset){
struct.temp = ;
}
}
}
/**
*移除函数
* @param fun
*
*/
public function remove(struct:GFunInfo):void
{
var index:int = _funAry.indexOf(struct);
if(index != -)
{
_funAry.splice(struct,);
}
}
/**
*销毁
*
*/
public function destory():void
{
_funAry.length = ;
_timer.stop();
_timer = null;
}
}
}
package game.mananger
{
public class GFunInfo
{
/**
*
* @param fun 回调函数
* @param delay 间隔秒数
* @isReset isReset 重新add后是否继续上次的计数
*/
public function GFunInfo(fun:Function,delay:int,isReset:Boolean)
{
this.fun = fun;
this.delay = delay;
this.isReset = isReset;
}
public var fun:Function;
public var delay:int;
public var isReset:Boolean;
public var temp:int;
}
}
        testGtimer();

        private function testGtimer():void
{
var g:GTimerManager = new GTimerManager();
g.add(new GFunInfo(testGfun,5,true));
g.add(new GFunInfo(testGfun2,1,false));
}
private function testGfun():void
{
trace("testGfun");
}
private function testGfun2():void
{
trace("testGfun2");
}

flash Timer 性能优化,每几秒间隔一次的更多相关文章

  1. flash性能优化方案整理(最全)

    性能优化的原则 1.避免过早优化:太早优化将使代码难以设计和维护,最好是针对程序的瓶颈进行优化. 2.改进性能有时需要权衡:不能一味注重改进性能,一个项目要考虑各方面的利弊,比如代码的健壮性,结构性, ...

  2. Android应用性能优化(转)

    人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然连贯(帧率为24fps),用手机当然也需要感知屏幕操作的连贯性(尤其是动画过度),所以Android索性就把达到这 ...

  3. 转——Android应用开发性能优化完全分析

    [工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.] 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉 ...

  4. android app性能优化大汇总(UI渲染性能优化)

    UI性能测试 性能优化都需要有一个目标,UI的性能优化也是一样.你可能会觉得“我的app加载很快”很重要,但我们还需要了解终端用户的期望,是否可以去量化这些期望呢?我们可以从人机交互心理学的角度来考虑 ...

  5. Android 应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  6. Android UI性能优化详解

    设计师,开发人员,需求研究和测试都会影响到一个app最后的UI展示,所有人都很乐于去建议app应该怎么去展示UI.UI也是app和用户打交道的部分,直接对用户形成品牌意识,需要仔细的设计.无论你的ap ...

  7. 【转】Android应用开发性能优化完全分析

    http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关 ...

  8. Android应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  9. hbase性能优化总结

    hbase性能优化总结 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都 ...

随机推荐

  1. C# 解析soap数据为json格式

    数据格式: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soa ...

  2. ng-深度学习-课程笔记-17: 序列模型和注意力机制(Week3)

    1 基础模型(Basic models) 一个机器翻译的例子,比如把法语翻译成英语,如何构建一个神经网络来解决这个问题呢? 首先用RNN构建一个encoder,对法语进行编码,得到一系列特征 然后用R ...

  3. 【Rpc】基于开源Dubbo分布式RPC服务框架的部署整合

    一.前言 Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用.整合.集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD.当当在内的众多互联网项目 ...

  4. js的原型继承

    <script> //动物(Animal),有头这个属性,eat方法 //名字这个属性 //猫有名字属性,继承Animal,抓老鼠方法 function Animal(name){ thi ...

  5. JAVA异常处理分析(中)

    在使用java异常处理机制时候我们会发现有些异常抛出后可以不需要进行抓取处理,而有些异常必须要进行抓取处理,这是个什么情况呢? 设计理念猜想:      有一些场景的异常,是可以不需要处理或是经常不会 ...

  6. 安装 android4.0 到 vmware的注意点

    我发现无论如何,wmware上是出不来声音的. 我放弃 android-x86-4.3-20130725.iso 在 声音上有问题 现在安装这个版本: android-x86-4.0-RC2-eeep ...

  7. 1003: [ZJOI2006]物流运输 最短路+dp

    https://www.lydsy.com/JudgeOnline/problem.php?id=1003 数据范围很小,怎么瞎搞都行,n方dp,然后跑出最短路暴力转移,需要注意的是不能使用的可能有多 ...

  8. AppCrawler自动化遍历使用详解(版本2.1.0 )

    AppCrawle是自动遍历的app爬虫工具,最大的特点是灵活性,实现:对整个APP的所有可点击元素进行遍历点击.   优点: 1.支持android和iOS, 支持真机和模拟器 2.可通过配置来设定 ...

  9. IOS-网络(发送JSON数据给服务器和多值参数)

    三步走: 1.使用POST请求 2.设置请求头 [request setValue:@"application/json" forHTTPHeaderField:@"Co ...

  10. C# 对json对象嵌套数组

    看图: 这里可以看到是二层嵌套!!使用C#如何实现?? 思路:使用list集合实现 → 建立类 → list集合 → 微软的   Newtonsoft.Json  (一款.NET中开源的Json序列化 ...