当前位置 : 主页 > 手机开发 > harmonyos >

Java与Flex学习笔记(14)----Flex中实现倒计时的效果

来源:互联网 收集:自由互联 发布时间:2023-08-25
之前想做个倒计时的效果,本想着挺容易的,没想到做起来还是有一些难度的,最后还是借助网络资源实现了这个效果。 我原想的是flex中有一个setTimeout()函数,此函数意思是在指定的


      之前想做个倒计时的效果,本想着挺容易的,没想到做起来还是有一些难度的,最后还是借助网络资源实现了这个效果。


      我原想的是flex中有一个setTimeout()函数,此函数意思是在指定的延迟(以毫秒为单位)后运行指定的函数,即


    public function setTimeout(closure:Function, delay:Number,... arguments):uint

原文件的如下部分所示代码:

            

<?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" preloader="ases.util.LoadingProgressBarUtil" width="100%" height="100%"creationComplete="app_creationCompleteHandler(event)">
    <fx:Style source="css/activateEmail.css" />
    <fx:Script>
       <![CDATA[
      
           public var timer:Timer;
           [Bindable]public var str:String;
 
           protected function app_creationCompleteHandler(event:FlexEvent):void
           {  
              timer=new Timer(1000);   //设置间隔时间为1s
              timer.addEventListener(TimerEvent.TIMER, timehandle)
           }
          
          
         //调用倒计时方法
           private function startTimer():void
           {
              timer.start();
           }
           //停止倒计时方法
           private function stopTimer():void
           {
              timer.stop();
           }
           //
           private function timeTransform(stattime:int, counter:int):String
           {
              var str:String="";
              var count:int=stattime - counter;
              var second:int=count % 60;
              str=(second + "")+"s后返回主页...";
              if (second == 0)
              {
                  isStop=true;
                   //可在此处添加倒计时末期的处理方法。
                  str="请稍候,正在跳转中..."
                  var url:URLRequest=new URLRequest("http://localhost:9080/mydisk/swf/login.html");
                  navigateToURL(url,"_self");
              }
              else
              {
                  isStop=false;
              }
              return str;
           }
          
           private function timehandle(e:TimerEvent):void
           {
              var count:int=timer.currentCount;
              str=timeTransform(6, count);
              if (isStop)
              {
                  stopTimer();
              }
           }
         <s:Labelid="back" text="{str}"/>
</s:Application>



 

       上面贴出了实现倒计时的代码,可以看出实现这个效果是首先实例化一个Timer对象,然后通过监听Timer来实现效果。当我们需要显示此倒计时时调用startTimer()方法,反之调用stopTimer()方法即可。部分注释详见代码。


       效果如下所示:

Java与Flex学习笔记(14)----Flex中实现倒计时的效果_Flex

   

 

     

Java与Flex学习笔记(14)----Flex中实现倒计时的效果_spark_02




上一篇:POI 读取EXCEL
下一篇:没有了
网友评论