Flash运行时阻塞测试
如果您看了我的上一篇博文,您就应该了解Flash Player运行时的帧频和Timer计时是不精确的;其原因之一是AVM虚拟机每次分配的时间片间隔不是一个固定的值;另一个原因则可能是一次时间片所运行的代码较大,如果一个时间片的时间执行不完,则时间片就会延长并占用后面的时间片。
在这篇文章里,我给“时间片执行不完而延长该时间片,并造成帧频、Timer暂时停止”的情况起了个名词叫“Flash运行时阻塞”(这个名词或许并不完全恰当,如果您有更适合的词语,可以告诉我)。如果您没有看过我之前的博文,下面有两个链接,您有必要看一下:
执行模型之可变跑道
Flash Player帧频、Timer计时 的时间间隔测试
Flash运行时阻塞也会分为多种情况,比如:单次时间片所运行的代码量大,在给定的时间片内执行不完、计算机配置较低或运行过多的程序造成Flash所获得的CPU资源较少、Flash加载外部大数据文件等,本文的重点是关于Flash加载外部数据时,所造成的阻塞测试,其他几种情况较容易理解,我就暂时不进行测试了,有兴趣的朋友可以试一下。
AS3中,与加载外部数据有关的类有Loader、URLLoader、FileReference、NetConnection、SharedObject、Socket、XMLSocket等,另外我还测试了Flex中的SWFLoader和开源文件加载类BulkLoader,下面列出我的测试代码,后面总结一下。我使用的是Flex开发工具,创建了一个Flex项目。
对于这几个类的测试方式,大都是类似的,我就不全部列出了,我们看一下URLLoader在加载的时候对Timer计时和帧频的影响:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<!--[CDATA[
import flash.utils.getTimer;
// 测试计时器
private var timer:Timer;
// 记录开始时间
private var startTime:int;
// 记录上一次计时的时间
private var prev:int;
// 用于加载数据的URLLoader
private var loader:URLLoader;
private function start(event:Event):void
{
// 创建一个Timer
timer = new Timer(100);
timer.addEventListener(TimerEvent.TIMER, onTimer);
// 创建一个URLLoader
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onComplete);
// 记录当前时间
startTim
相关文档:
苹果和Adobe有很深的渊源。实际上,我们很早就在车库里与Adobe创始人有过一面之缘。苹果是Adobe第一个大客户,我们新的Laserwriter打印机就使用了它们的Postscript语言。苹果还投资Adobe,并多年持有它20%的股份。两家公司精诚合作,开发桌面出版系统,并多次合作良好。经过一段黄金年代后,两家公司渐行渐远。苹果经历了濒 ......
FAT文件系统在NAND Flash存储器上的改进设计
嵌入式系统的大量数据都存储在其F1ash芯片上。根据Flash器件的固有特性,构建一个适合管理NAND Flash存储器的FAT文件系统,并阐述具体的设计思想。该系统改进了FAT表和FRT表的存储方式,延长了存储器的使用寿命,提高了稳定性。
&n ......
sudo gedit /etc/fonts/conf.avail/49-sansserif.conf
将
<edit name="family" mode="append_last">
<string>sans-serif</string>
......
1,FLASH是什么?
FLASH电影是专为网页服务的画像或动画(当然,也可用于其它用途)。主要含有矢量图形,但是也可以包含导入的位图和音效,还可以把浏览者输入的信息同交互性联系起来,从而产生交互效果,也可以生成非线性电影动画。该动画可以同其它的WEB程序产生交互作用。网页设计师可以利用FLASH来创建导航控制器、动态LOG ......
FLASH中场景切换的几个方法在制作flash动画的时候,可能会有有很的mc
有时会把它放到几个场景中,那么在场景中的跳转如何实现呢?
请看教程吧。
1.
方法一:(使用telltarg...
方法一:(使用telltarget命令)
按钮上的as为:
on (release) {
tellTarget ("/") {& ......