发新话题
打印

[基础] 简单倒计时类的应用

简单倒计时类的应用

功能:设置好用于显示倒计时类的动态文本框实例名称,以及倒计时数目,包括倒计时结束后跳转到的帧数即可。
演示:


TaoshawCountDown类中的代码如下:
引用:
/*------------------------------------------
作者:沙子
站点:http://www.taoshaw.com
版本:v1.0
版权:淘沙网
此代码定义的是一个倒计时类,可以简单的创建秒数的倒计时,可用于一般小游戏
------------------------------------------*/
//此处进行类声明,注意,类名称要与前面的as文件名一致
class TaoshawCountDown {
//定义变量开始
//定义重复调用函数的名称
private var my_ID:Number;
private var my_Second:Number;
//定义倒计时的总时间
private var my_Total:Number;
//定义倒计时完后,跳转的帧数
private var my_Frame:Number;
static var my_Length:Number;
//定义私有用于显示计时的场景动态文本实例
private var my_Text:TextField;
//构造实例函数,用于创建实例
public function TaoshawCountDown(my_text:TextField, second:Number, my_frame:Number) {
my_Text = my_text;
my_Second = second;
my_Total = second;
my_Frame = my_frame;
init();
}
//初始化计时器
private function init():Void {
//计时器数目递加
TaoshawCountDown.my_Length += 1;
}
//获取计时的总时间
public function get total():Number {
return my_Total;
}
//设置计时的总时间
public function set total(second:Number):Void {
my_Second = second;
my_Total = second;
}
//统计计时器的数目
static function getLength():Number {
return TaoshawCountDown.my_Length;
}
//实现计时功能
private function timeing():Void {
//当倒计时数目>0时,递减
if (my_Second>0) {
my_Text.text = String(my_Second);
my_Second--;
} else {
this.stop();
}
}
public function play():Void {
my_Text.text = String(my_Second);
//每隔1秒调用一次timeing函数
my_ID = setInterval(this, "timeing", 1000);
}
//定义stop()函数
public function stop():Void {
my_Second = my_Total;
my_Text.text = "计时结束";
//清除调用函数
clearInterval(my_ID);
//倒计时完后跳转的帧数
_root.gotoAndPlay(my_Frame);
}
}
/*------------------------------------------
作者:沙子
站点:http://www.taoshaw.com
版本:v1.0
版权:淘沙网
此代码定义的是一个倒计时类,可以简单的创建秒数的倒计时,可用于一般小游戏
------------------------------------------*/
调用此类时代码:
引用:
stop();
//在此定义用于显示倒计时时间的动态文本框实例名,第二个参数为倒计时的秒数,第三个为倒计时完后,跳转的帧数
var my_time:TaoshawCountDown=new TaoshawCountDown(_text,10,2)
my_time.play();
源码下载:

[ 本帖最后由 taoshaw 于 2008-4-6 10:34 编辑 ]

附件

TaoshawCountDown.rar (5.62 KB)

2008-4-6 10:34, 下载次数: 75

我的主页:http://www.taoshaw.com
我的QQ:8286659

TOP

闲来无事,我也来写个AS3的
复制内容到剪贴板
代码:
package cn.flash023{
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.display.MovieClip;
public class opposeTime {
  private var T:Timer;
  private var p:uint;
  private var total:uint;
  private var __txt:TextField;
  public function opposeTime(_txt:TextField ,_uint:uint ,_p:uint ):void {
   __txt=_txt;
   total=_uint;
   p=_p;
   __txt.text =timeFomat(total);
   T=new Timer(1000,total);
   T.addEventListener(TimerEvent.TIMER ,onTimeProgress);
   T.addEventListener(TimerEvent.TIMER_COMPLETE ,onTimeComplete);
   T.start();
  }
  private function onTimeProgress(_evt:TimerEvent):void {
   __txt.text =timeFomat(--total);
  }
  private function onTimeComplete(_evt:TimerEvent):void {
   __txt.text ="时间到!";
   var _mc:MovieClip=__txt.parent as MovieClip;
   _mc.gotoAndStop(p);
  }
  private function timeFomat(_uint:uint ):String {
   var _h:String =("0"+int(_uint/3600)).substr(-2);
   var _m:String =("0"+int(_uint%3600/60)).substr(-2);
   var _s:String =("0"+int(_uint%3600%60)).substr(-2);
   return _h + ":" + _m + ":" + _s;
  }
}
}


[ 本帖最后由 终极讨厌 于 2008-4-6 12:58 编辑 ]

附件

opposeTimer.rar (13.76 KB)

2008-4-6 12:54, 下载次数: 103

TOP

我看楼上的是东西多,但想做的事情少哦..而我是想做的事情多,而肚子墨水少...呵呵.
我的主页:http://www.taoshaw.com
我的QQ:8286659

TOP

楼主还在研究AS2,佩服。鼓励下,

TOP

不错

哥们太有材了。。。

TOP

引用:
原帖由 8765004 于 2008-4-7 09:44 发表
楼主还在研究AS2,佩服。鼓励下,
没办法噢,,,感觉还是先把AS2搞得更懂点,再学习AS3.0.可能这样上手快点,嘿嘿.
感谢斑竹的鼓励噢......
我的主页:http://www.taoshaw.com
我的QQ:8286659

TOP

AS2能做的事情AS3都能做。AS3有无限扩展的可能性,

TOP

昨天正式开始学习AS3了。。。感觉AS2有太多的东西需要做了,反而不知从何下手。还是直接学AS3吧。
我的主页:http://www.taoshaw.com
我的QQ:8286659

TOP

什么是时候才能发帖啊

新手 怎么能很快积分呢

我的在线时间怎么可能一直都是0嘛

新手想问个问题 真麻烦

TOP

学AS3需要AS2的基础吗? 学习中。。 请高手指点学习方法。

TOP

太有才了,我们这些菜鸟什么时候才达到这种水平呢?

TOP

发新话题