- [原创]鼠绘技巧
- [原创]TextFormat类的问题
- [原创]with语句指向自身的小办法
- [原创]闲扯一些Flash小技巧
- [原创]全局变量让你告别繁琐的路径
- Depth小提示
- [原创]superBreak插件制作完成+心得更新
- [原创]JSFL中比较有用的几个方法
- [原创]mcloader的简单用法
- [原创]with语句的一系列实验
- [原创]Flash如何用asp、XML读取Blog中的信息。
- [原创+整理]进一步了解Flash坐标机制[更新]
- [原创]Flash第三方软件与Flash的完美结合
- [原创经验]谈MC的instanceName
- [原创]论过渡技术 (smoothExchangeSkills)
- [技术]原创-完美的loading-完美到底[基础]
- [原创]Flash投票系统(Updated@0309)
- 让人心烦的安全性
- External Interface API 学习笔记
- Thoughts without Flash (作品)
- [原创]广州行记 - II(项目篇)+后记
- [提示]一个细节 1+1 = 11 ~~ ??
- [Blog接力]Flash8最让我喜爱的5个特性
- [原创]白云Banner
- [荣幸+分享]v2005被推荐到ChinaUI了|此外带来一首好歌
- FlashRIA-应用 涂鸦贺卡
- [Update]双层XML导航栏,Fla源文件,HTML演示文件打包
- [转载]prototype属性和ASSetPropFlags琐碎
- 文本获取焦点 Selection vs FocusManager
- 近期使用 curveTo 一些问题,一些想法
- 近日忙于它事,抽空做一Flash供MGer一乐
- 有幸以评委身份出席计算机协会Flash比赛
- 看到N久以前自己的Flash作品有感
- 思考一个问题·FlashAS效率的问题
- [原创]bitmap in Flash != perfect
- 很久以前根据静态jpg做的一个动画
- [原创翻译]Flash的代码优化
- [原创]两个Flash特效
- [转载]Flash不能直接操纵线程真不爽
- [引用+原创]如何做好一个多人配合的flash项目
- [原创]按钮精密逻辑控制[须配合tween类]
- [转载]flash中可以使用的HTML标签[有用]
- [原创]Flash中动态HTML文本显示中文的问题
- 整理一篇非常好的文章。
- 原创经验-坐标非整数时的像素化
- 考虑翻译几个经典的Flash英文文章
- 评国内Flash门户站点的发展
- 本站首页测试,有时间的朋友请帮帮我,谢谢
- Flash中档次开发常见问题[陆续补充,欢迎跟帖]
- [原创]国内的Flash牛人
- [讨论/疑惑]一个困惑了我很久的mask问题(已经解决)
- 用FlashCS3开发透明的AIR(Apollo)应用
- gotoAndLearn.com的Flash视频教程全套下载公布
- 创建基于Flash技术弹性布局的Web应用程序
- 同一屋檐下的较量与共存 - WPF vs/and Flash
- FlashEngine for SVG
- 猜心术 ~ 忒神了……还是我头晕了
- [酷站]一个不用点鼠标就可以浏览的网站
- 状态机-简单、重要、高可应用性的思想
- 记录被各大网站收藏的原创文章
- 由Flash中的异步、同步联想到setInterval的一些用法。
- 理性思考Flash与Ajax相关问题[原创]
- 推荐-复杂富文本开源项目@OSFLASH.org
- 背叛时间轴·突破IDE
- [技术]原创-完美的loading-完美到底[减负]
- [技术]原创-完美的loading-完美到底[利器]
- 积累:SDK/API等相关知识
- 项目进行中的一点体会[原创]
- Flash做的操作系统
- 到武汉之后的一点交待
- [酷站+原创瞎掰]全世界最长的网站+awDIY-RIA
- [原创]论网络道德 II
- 两篇呼吁保留Fireworks的文章[原创翻译]
- 双周小结(附送一些信息)
- 安全性……安全性
- 10月随笔
- [原创]给白云的MG版做的进站
- Google大预言(flash版)
- [讨论]Flash8中的强选取 vs Flash7中的弱选取
- [分享]Flash右键下载绿色插件
- [转载]Flash杀手!微软Sparkle即将露面(2文)
- 广州行记 - I
- FlashEarth|吐血推荐
- MX2k4的bug问题[zz from xfykzz's blog]
- [原创]凡是编程的朋友都可考虑调整一下
- [原创]Webservice使用实例2则 - 各地天气预报|各国货币转换
- setInterval vs onEnterFrame!!
- 什么是dpi?[积累]
- 看到Zas的新Player的一点畅想
- 安装了MM Flashplayer8beta
- 课设基本done
- 01的师兄走好!
- 图标设计 for TC团队
- 一年前……
- [荣幸]被FlashK加入收藏了,荣幸
- [原创]made for BYHHBlog
- [原]胡言乱语
- [原创翻译]如何保护swf文件不被反编译软件破解?
- [原创翻译]一篇评判MM被Adobe收购的很有争议的文章
- [原创]物理像素·逻辑像素图解
- [原创]JSFL-BreakApart-请高手批评
- [原创扯淡]中庸·思考
- 计算机·人生·扯淡
- [原创]粒子特效(两种不同的实现)
- 药 · 随便扯淡
- [原创]饮水思源
- [收集]QQ的一些变态技术,呵呵经典啊!
- 尊重你的trace()
- [原创]牛人
- actionscripting vs. “real” programming
- 偶遇Color类
- 代码的艺术
- Flash在XML加载方面还是感觉挺迟钝的啊!
- 关于首页的flash的问题
- [原创]三月的雪,送走我的似水流年。
- [收集整理]Macromedia认证 详情
- zz怎样做一个优秀的软件模型设计者
- [原创]Alexa高校访问排名
- 继续关注 Flash的效率性,稳定性
- 困扰在一个细节问题中
- 今天blog出了很奇怪的问题
- 到处行走,却离不开网络[幻想]
- 要热爱新的技术
- [原创·积累]-娇贵的遮罩
- 看看人家是怎么“闪”的
- 鄙人鄙站
- 再会仙剑
- sex - 偶们谈“性”色不变~
- 交友+视频交友
- 流量稳步上涨的总结与分享
- 提高Blog初期访问量的5个必备因素
关于延迟的实现(讨论)
前段时间在某处看到一个用setInterval实现延迟的东西,用起来屡试不爽。不过后来也发现这其中的麻烦,主要是setInterval本身带来的麻烦,不知道有没有人有好的Idea。
首先来说一下用setInterval如何实现延迟。
基本功能相比大家都知道了,就不再赘述了。看代码,一目了然:
function myfun(){
trace("this will be shown after xxxx(delay) ms");
clearInterval(myInterval);
}
比如:
function myfunction(){
trace("this will be shown after 1 second");
clearInterval(myInterval);
}
这里我也顺便了解到了一个很长时间都没有注意的细节,setInterval的机制是,第一次执行前要先等候interval的时间间隔(不知道是不是MM特别为了大家来做延迟)
然后,我把这个延迟封装成了一个function,如下:
function delayer(funname, delaytime, p1, p2) {
var funname:Function;
var delaytime:Number;
var _fun:Function = function () {
funname();
clearInterval(intervalID);
};
var intervalID = setInterval(_fun, delaytime);
}[/code]例如:
var funname:Function;
var delaytime:Number;
var _fun:Function = function () {
funname(p1,p2);
clearInterval(intervalID);
};
var intervalID = setInterval(_fun, delaytime);
}
delayer(a, 1000, 2, 3);
function a(t1, t2) {
trace(t1);
trace(t2);
}
到此为止,似乎这件事情就结束了,比较精确的延迟也已经基本实现了(我们可以定义延迟的时间,这就跟C++比较像了)
可是,郁闷的事情是,如何在外部找到这个延迟,并且消除呢?
这听起来有些匪夷所思,但是实际解决的过程中却让我很头痛,其中包括我一直都弄不明白的intervalID这个概念。
是这样的,我要做一段动画,依次出现一些MC。他们都是用AS根据XML动态生成的,所以必然要用到延迟配合Tween类来实现。
这样我就用:
delayer(getThis.myFun, 500*k, 0x000000, .2);//后面两个是参数
这里 500*k是延迟的时间,k是套在一个for循环中的递增变量,500*k,就表示每0.5秒调用getThis的myFun函数(这里getThis在循环中依次只想不通的MC,于是可以实现前面说的动态效果)
播放一次,问题还好。可是如果我想要在中途让它停下来就麻烦了。比如,依次要出现10个长方体,第一个渐变出来,然后是第二个,然后是第三个。如果作品要求要在按下某一个按钮的时候全部重新出现(即回到一个都没有的时候,再来依次逐级出现)就麻烦了。这时候,再调用delayer函数的时候,后面五个就会出现混乱(有点覆水难收的感觉,因为delayer的调用本身是一蹴而就的,即那个for循环在一瞬间就给不同的MC安置了不同的延迟)
于是我尝试提前clearInterval,可是这似乎也不是一个好办法,因为这个intervalID是存在于function内部的一个变量,在外面要把它捕捉到,太麻烦了,而且它本身也不方便保存出来(是一组随着你不断调用那个delayer函数不断增大的数字)
不知道各位有没有对setInterval的机制比较深入研究过的,我十分想知道如何在外部捕获这样一些不停调用的intervalID。或者是不是我的延迟思路彻底错误了?



分享到做啥


可以把setInterval的返回结果保存在一个数组中,如果有必要则逐个调用clearInterval
看来也只有如此了,多谢J大牛:)
跟你碰到同样的问题,我也屡试不爽!播放一次的时候OK!如果重新加载播放第二次的时候!问题就出现了!也尝试过clearInterval等等方法,还是解决不了!
JOVE说的逐个调用clearInterval,你有试过吗,能解决这个问题吗,这点倒是没尝试!
有对setInterval的机制深入研究的朋友请回复哦!
目前找到了动态改变interval的方法,其实很简单,用一个
clearInterval(_global.intervalID);
在
_global.intervalID = setInterval();
之前,就可以动态改变,比如用FSlider组件监控调用频率。
但是还是无法实现延迟,或者暂停(理论上interval -> Inf)
不知道这是哪个环境下的函数呢?asp?。net?php???