Flex程序 两帧构成

Flex程序是由两帧构成,第一帧用于加载程序和相关RSL等,第二帧才会执行swf。

进入第二帧后,FlashPlayer仍然按照指定的“帧频(时间间隔)”不断重新播放第二帧。这是FlashPlayer运行特点。

Flex组件框架也是借由这个运行特点(机制)监听“进入帧(ENTER_FRAME)”事件,然后更新各种属性、尺寸、重新绘制外观的。

(Flex程序本质上和Flash程序一样,也是影片剪辑。也会被FlashPlayer循环播放)

 

下面的例子可以测试帧频,同时也可以证明:

1. Flex程序在指定的“帧频”下,不断被重新播放。

2. 这个时间间隔不是绝对的相等,而是“差不多”的“等间隔”。

 

>>源代码

关键词:

frameRate:帧频。下例中的帧频被指定为1,也就是每隔1秒钟中重放第二帧

ENTER_FRAME:进入帧后,由FlashPlaer发出的帧事件

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" 
      frameRate="1"
      creationComplete="init()"
      >
 <fx:Script>
  <![CDATA[
   var temp:int = 0;
   
   public function init():void{
    //对帧重放进行监听
    this.addEventListener(Event.ENTER_FRAME,enterFrame);
    //txt.text = this.stage.frameRate+"\r\n";
   }
   
   public function enterFrame(e:Event):void{
    //在画面上记录进入帧的时间
    txt.text += (flash.utils.getTimer()-temp) + "\r\n";
    temp=flash.utils.getTimer();
    
    //为防止记录的内容过多,在记录部分时间后去掉监听
    if (txt.text.length >100)
    {
     this.removeEventListener(Event.ENTER_FRAME,enterFrame);
    }
   }
  ]]>
 </fx:Script>
 <s:TextArea id="txt" x="29" y="35" width="497" height="331"/>
</s:Application>

 

>>执行效果

从第二个数据开始,输出的时间间隔(时间差)基本相同

Flex程序 两帧构成

 

你可能感兴趣的:(Flex)