选择显示字体大小

intervalmanager的扩展

intervalmanager, setinterval 的扩展

主要功能:
增加了停止, 暂停 interval 功能
增加了删除所有 interval 的方法
在每次触发 interval 的时候广播事件跟踪, 更高的可扩展性
解决了函数返回值出路的问题 -0-

如何使用

// 首先准备一下 array 的 prototype
array.prototype.remove = function(index) {
 if (index == 0){
  this.shift();
 } else if (index == (this.length - 1)){
  this.pop();
 } else if (index > 0 && index < (this.length - 1) ){
  this.splice(index, 1);
 }
}
_global.assetpropflags(array.prototype, "remove", 1, 0);

// 导入包
import miragesystem.utils.intervalmanager;

function test1 (arg1, arg2) {
 trace("scope : " + this);
 trace("arguments.length : " + arguments.length);
 for (var i in arguments) {
  trace("arg[" + i + "] : " + arguments[i]);
 }
}

// test2 是带返回值的例子
var test2returnvalue:string;
function test2 () {
 trace("我是 test2");
 return "这里是 test2";
}

// test3 会被无限持续调用, 看看 test2returnvalue 的改变吧
function test3 () {
 trace("我是 test3, test2returnvalue 的结果是 : " + test2returnvalue);
}


function test4 () {
 trace("我是 test4, 现在暂停 test3");
 intervalmgr3.pause();
}

function test5 () {
 trace("我是 test5, 恢复 test3");
 intervalmgr3.start();
}

function test6 () {
 trace("我是 test6, 释放所有 interval");
 intervalmanager.cleanup();

}

function intervalmgr1_invoke (e:object) {
 trace("intervalmgr1.currentcount : " + e.currentcount);
}
function intervalmgr1_stop (e:object) {
 trace("intervalmgr1 已停止");
}

// 设置一个 interval, 第 1 个例子还包括了如何设置侦听器
var intervalmgr1:intervalmanager = intervalmanager.run(test1, 1000, ["arg1", "arg2"], true, 3, this);
intervalmgr1.addeventlistener(intervalmanager.invoke, intervalmgr1_invoke);
intervalmgr1.addeventlistener(intervalmanager.stop, intervalmgr1_stop);
var intervalmgr2:intervalmanager = intervalmanager.run(test2, 1500, null, false, 1, this, [this, "test2returnvalue"]);
var intervalmgr3:intervalmanager = intervalmanager.run(test3, 100);
var intervalmgr4:intervalmanager = intervalmanager.run(test4, 800, null, null, 1);
var intervalmgr5:intervalmanager = intervalmanager.run(test5, 1300, null, null, 1);
var intervalmgr6:intervalmanager = intervalmanager.run(test6, 5000);

下面是我的运行结果

scope : _level0
arguments.length : 2
arg[1] : arg2
arg[0] : arg1
我是 test3, test2returnvalue 的结果是 : undefined
我是 test3, test2returnvalue 的结果是 : undefined
我是 test3, test2returnvalue 的结果是 : undefined
我是 test3, test2returnvalue 的结果是 : undefined
我是 test3, test2returnvalue 的结果是 : undefined
我是 test4, 现在暂停 test3
intervalmgr1.currentcount : 2
scope : _level0
arguments.length : 2
arg[1] : arg2
arg[0] : arg1
我是 test5, 恢复 test3
我是 test3, test2returnvalue 的结果是 : undefined
我是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
intervalmgr1.currentcount : 3
scope : _level0
arguments.length : 2
arg[1] : arg2
arg[0] : arg1
intervalmgr1 已停止
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test3, test2returnvalue 的结果是 : 这里是 test2
我是 test6, 释放所有 interval

intervalmanager.as

代码拷贝框

[ctrl+a 全部选择 然后拷贝]

eventdispatcher.as
就是 mx.event.eventdispatcher -_-

例子和全部代码下载:点击下载

经典论坛讨论帖:
http://www.blueidea.com/bbs/newsdetail.asp?id=2572690


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons