(未解决)Enter_Frame和Render事件是发生在一帧的头和尾吗?
来源:互联网 发布:c语言 ~ 编辑:程序博客网 时间:2024/06/03 19:08
[SWF] C:\Users\Administrator\Adobe Flash Builder 4.6\testAS\bin-debug\testAS.swf - 解压缩后为 1,639 个字节onEnterFrame=32 632onRender=32 635onEnterFrame=33 339onRender=33 341onEnterFrame=34 339onRender=34 341onEnterFrame=35 337onRender=35 339onEnterFrame=36 338onRender=36 340
根据FlashPlayer的“可变跑道”之说,Enter_Frame事件发生在一帧开始,而Enter.Render发生在一帧的结束。
关于“可变跑道”,请参考:http://blogs.adobe.com/xwlin/2010/04/flash_player_101_-_adobe_max_2009_1.html
这种说法是在FlashPlayer9的时候提出的,时至今天的FlashPlayer11,还仍然如此吗?
下面的实验尝试验证这一说法,但是结果很奇怪,似乎这两个事件是连续发生的,中间没有间隔。
请看如下实验:
package { import flash.display.Sprite; import flash.events.Event; public class testAS extends Sprite { private var startW:int = 10; public function testAS() { //设置帧频为1秒1帧 this.stage.frameRate = 1; //监听ENTER_FRAME和RENDER事件 this.addEventListener(Event.ENTER_FRAME,onEnterFrame); this.addEventListener(Event.RENDER,onRender); } public function onEnterFrame(e:Event):void { //为了触发Event.RENDER事件,而修改画面外观 this.graphics.clear(); this.graphics.lineStyle(1,0x998877); this.graphics.drawRect(10,10,startW,20); this.stage.invalidate(); startW += 5; //记录时刻 var now:Date = new Date(); trace("onEnterFrame=" + now.seconds + " " + now.milliseconds); } public function onRender(e:Event):void { //记录时刻 var now:Date = new Date(); trace("onRender=" + now.seconds + " " + now.milliseconds + "\n"); } }}
在FlashBuilder中Debug,执行结果如下:
通过onEnterFrame的时间间隔,可以看出,帧频的确是1秒。
按照“可变跑道”之说,onEnterFrame应该发生在一帧的开始,而onRender发生在一帧的结束。在本实验中,两者的时间差应该是1秒左右。
但是实验结果表明,两者的时间差仅为2-4毫秒。
猜测:
难道FlashPlayer的跑道模型发生了变化?还是实验设计的不合理?
- (未解决)Enter_Frame和Render事件是发生在一帧的头和尾吗?
- Flex程序只有两帧,为什么ENTER_FRAME事件不断发生
- Timer 和 Event.ENTER_FRAME (转)
- flex的enter_frame事件详解
- 对于ENTER_FRAME事件的清除处理
- 【ActionScript】ENTER_FRAME事件与组件的旋转
- React.render和reactDom.render的区别
- React.render和reactDom.render的区别
- React.render和reactDom.render的区别
- app.render和res.render的区别
- 鼠标和按钮事件的发生
- 代码(软件)是怎么和硬件发生联系的?
- 东软实训推荐面试问题4:你和别人发生争执你是怎样解决的?
- TCP的三次握手和四次握手是在socket编程的什么阶段发生的
- shade 和 render的区别
- Flash 平台技术的优化(六) 计时器与 ENTER_FRAME 事件
- 链表中 的 头指针 和 头结点 是不一样的
- XFace的编译和使用(未全部解决)
- 黑马程序员--C#数据库辅助类(简单版)
- Extjs的Requiers作用
- ORACLE警告日志简介
- js 时间格式化 获取当前时间
- 个人项目Android代码整理
- (未解决)Enter_Frame和Render事件是发生在一帧的头和尾吗?
- Android应用开发揭秘的第20,21个程序5_15_tween,5_16_tweenxml修改版和高仿版的源码注释
- ubuntu 局域网连接
- Oracle学习笔记安装篇之在Redhat Enterprise Linux 6.3 x86_64下安装Oracle11g R2
- Java中的闭包(Closure)和回调
- Bloom Filter概念和原理 .
- Jquery.callbacks源码分析-jquery1.8.3
- LeetCode: Longest Substring Without Repeating Characters
- linux下svn的常用代码