Flash Player帧频、Timer计时 的时间间隔
对于大部分Flash开发者,都已经知道Flash的帧频、Timer计时并不是十分精确的。如果您已经做过这方面测试,可以略过这篇文章的前面一部分,在后面有关于Flash Player可变跑道的文章链接,希望对您有帮助。这篇文章的主要目的是让一些不知道Flash计时不精确和知道但又没有做过测试的朋友,来分享我的测试结果。我使用的Flex开发工具,并创建了一个ActionScript项目。
测试我尽量使用最简单的代码,下面是针对于Timer的测试代码,设置了一个20毫秒每次的Timer,为了简单我只计时5次:
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.utils.getTimer;
public class TimerTest extends Sprite
{
// 定义一个计时器
private var timer:Timer;
// 记录上一次计时的时间
private var prev:int;
public function TimerTest()
{
// 计时器初始化为20毫秒执行一次,执行5次后结束
timer = new Timer(20, 5);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
// 启动计时器后,记录一下当前时间
prev = getTimer();
}
private function onTimer(event:TimerEvent):void
{
// 计时器执行,获取当前时间
var t:int = getTimer();
// 打印出当前时间与上一次计时的时间间隔
trace(t - prev);
// 记录下当前时间
prev = t;
}
}
}
/** 输出结果
26
28
38
27
20
**/
运行一下这个程序,可以看到输出的结果并不是准确的20毫秒,每次运行的结果都不一样,并且都大于等于20毫秒,由此可以得出Timer的计时并不是精确的。
继续看每次Flash帧频的时间间隔,这个测试例子中,设置了帧频为25帧每秒,理论上两帧之间的时间间隔为40毫秒(1000毫秒 / 25帧):
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.getTimer;
// 设置swf的帧频的25帧每秒
[SWF(frameRate = 25)]
public class EnterFrameTest extends Sprite
{
// 记录上一次计时的时间
private var prev:int;
public function EnterFrameTest()
{
// 监听ENTER_FRAME事件
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
// 记录当前时间
prev = getTimer();
}
private function onEnterFra
相关文档:
表面上都说啥技术,啥标准原因,其实实质原因都是商业因素。
苹果不肯开放flash,是因为flash本身也可以开发各种应用,直接跟
app sotre会相冲突,而且以前确实adobe也有过flash app store。
至于微软更不用说了,sliverright推广得
不成功,flash的太过于成功也是一个原因。
微软和苹果本来不是朋友,但敌人的敌人就是 ......
个人觉得这是标准与私有标准的PK, 就像微软的office和其他office软件,如金山wps,openoffice的竞争类似。
从用户角度看PK越多越好,呵呵。
http://www.javaeye.com/news/15856-apple-flash
http://www.w3school.com.cn/html5/index.asp
http://www.w3.org/TR/html5/
http://html5.org/ ......
第一步:准备你要提取源文件的电子杂志,比如zcom的杂志
第二步:运行这个杂志,在整个提取过程中,不要关闭杂志。
第三步:打开我的电脑——工具——文件夹选项——查看——显示隐藏所有文件和文件夹,确定
第四步:定位到C:\Documents and Settings\username\Application Dat ......
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.system.fscommand;
import flash.display.StageDisplayState;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
/**
* ...
* @author LittleSpace
*/
public class Main extends Sprite
{ ......
1,FLASH是什么?
FLASH电影是专为网页服务的画像或动画(当然,也可用于其它用途)。主要含有矢量图形,但是也可以包含导入的位图和音效,还可以把浏览者输入的信息同交互性联系起来,从而产生交互效果,也可以生成非线性电影动画。该动画可以同其它的WEB程序产生交互作用。网页设计师可以利用FLASH来创建导航控制器、动态LOG ......