zoukankan      html  css  js  c++  java
  • 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+" ";
       }
       
       public function enterFrame(e:Event):void{
        //在画面上记录进入帧的时间
        txt.text += (flash.utils.getTimer()-temp) + " ";
        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>

    >>执行效果

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

  • 相关阅读:
    局部类
    内部类
    程序的异常
    四种修饰符
    接口之间的多继承
    多态
    继承父类并实现多个接口
    接口内容小结
    接口的静态方法和私有方法
    顺序栈与链式栈
  • 原文地址:https://www.cnblogs.com/regalys168/p/4112376.html
Copyright © 2011-2022 走看看