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截屏都是通过CAxWindow类来装载flash控件的。
第一个要注意的是:
flash是一个activex控件,创建该控件的线程如果没有消息循环机制,那么flash控件将无法正常运作,举个例子,flash响应WM_TIMER消息进行播放,如果没有消息循环机制,将无法响应WM_TIMER消息。因此如果想要通过创建一个线程来执行flash截屏功能, ......
表面上都说啥技术,啥标准原因,其实实质原因都是商业因素。
苹果不肯开放flash,是因为flash本身也可以开发各种应用,直接跟
app sotre会相冲突,而且以前确实adobe也有过flash app store。
至于微软更不用说了,sliverright推广得
不成功,flash的太过于成功也是一个原因。
微软和苹果本来不是朋友,但敌人的敌人就是 ......
sudo gedit /etc/fonts/conf.avail/49-sansserif.conf
将
<edit name="family" mode="append_last">
<string>sans-serif</string>
......
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.system.fscommand;
import flash.display.StageDisplayState;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.ui.Keyboard;
/**
* ...
* @author LittleSpace
*/
public ......
机器内部有一部分flash供客户使用,同时机器支持sd卡。当插入sd卡时候flash内部和sd卡内部的多媒体都可以被播放器识别,一旦拔掉sd卡,则flash内的媒体对播放器也不见了。
解决方法:
修改frameworks/base/services/java/com/android/server/MountService.java文件的函数:notifyMediaBadRemoval如下,红色为添加。
mCon ......