AS3脚本编写的计时器效果代码

public function ShowTimer(){
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP_LEFT;
    initMc();
}

AS3里新加了很多的常量来代替字符串。这给我们带来了很大的方便。比如要限制影片的缩放模式为固定尺寸,AS2时的代码为

Stage.scaleMode = "noScale";

值是一个字符串,在输入的时候是没有代码提示的,很容易输错(我经常是到帮助文档里把字符串复制过来)。而在AS3里的代码为:

stage.scaleMode = StageScaleMode.NO_SCALE;

原来的字符串 “noScale” 由常量 StageScaleMode.NO_SCALE 代替。这样可以使用代码提示自动完成,有效避免了因为输错而造成的程序bug(而且很方便  )。同样的字符串常量还有一些事件类型比如 MouseEvent.CLICK 代替”click” 等等。

代码如下:

private function initMc():void{ 
    showTxt = new TextField(); 
    addShow(showTxt,10,10,310,20); 
    addLabel(setDelayLabel,10,40,"delay:"); 
    //...other code 
}

添加文本框和按钮。注意,需要再次引用的文本框必须显式初始化,否则在其他地方引用此变量将返回 null 。

代码如下:

private function addLabel(txt:TextField,x:uint,y:uint,text:String):void{ 
    txt = new TextField(); 
    txt.x = x; 
    txt.y = y; 
    txt.text = text; 
    addChild(txt); 
}

AS3里所有的东西都是 new 出来的。仅仅 new 出来还不行,必须使用 addChild() 把它添加到显示列表里。

代码如下:

private function addBtn(mc:Sprite,...,clickHanlder:Function):void{ 
    mc.mouseChildren = false; 
    mc.graphics.beginFill(0x000000,0.3); 
    mc.graphics.drawRect(0,0,w,h); 
    mc.buttonMode = true; 
    mc.addEventListener(MouseEvent.CLICK,clickHanlder); 
    addChild(mc); 
    // 
    txt = new TextField(); 
    txt.name = "btnText"; 
    mc.addChild(txt); 
}

在AS3里想要 mc 成为一个按钮必须设置:

mc.buttonMode = true;

这时看到鼠标经过mc时并没有变成手形,原因在最后一行,把 txt 添加到了 mc 里用来显示按钮文字,以致鼠标事件的目标对象为txt而不是期望的mc。为了解决这个问题需要加上一句:

mc.mouseChildren = false;

以保证mc为鼠标事件的目标对象(target objects)。

AS3里所有的可见对象都是DisplayObject的子类,而DisplayObject是EventDispatcher的子类

Sprite → DisplayObjectContainer → InteractiveObject → DisplayObject → EventDispatcher → Object

也就是说所有的可见对象都可以直接addEventListener。

mc.addEventListener(MouseEvent.CLICK,clickHanlder);

这里用常量 MouseEvent.CLICK 代替了事件类型 “click” 。此类常量以后不再赘述。

mc.graphics.beginFill(0x000000,0.3);
mc.graphics.drawRect(0,0,w,h);

AS3里所有的绘图方法都放在了 Graphics 里。Sprite的graphics属性就是一个Graphics。除了基本的 beginFill ,beginBitmapFill 之类,又增加了新的 drawCircle 、drawEllipse、drawRect 等方法,再也不用没完没了地 moveTo 、lineTo 了。

public function startTimer(event:MouseEvent):void{
    //...code here
}

下面是主要的内容了:Timer。

var delay:uint = setDelayTxt.text;
var repeatCount:uint = setRepeatCountTxt.text;
if(timer == null){
    timer = new Timer(delay,repeatCount);
}

uint是AS3新加的数据类型,表示32位的正整数(int 表示32位有符号的整数)。Timer的构造函数接受两个参数,delay 是 “timer” 事件延迟的毫秒数,repeatCount 是循环的次数,默认为0,即一直循环下去直到 stop 或者 reset 。

timer.addEventListener(TimerEvent.TIMER,timerHandler);
timer.addEventListener(TimerEvent.TIMER_COMPLETE,timerCompleteHandler);

timer广播两个事件,每隔 delay 指定的毫秒广播一次 “timer” 事件,循环repeatCount次之后广播 “timerComplete” 事件。

timer.start();
startBtn.getChildByName("btnText").text = " stop ";

timer 在 start 之后开始执行,此时 running 属性为 true 。把 startBtn 设置为 “stop”,注意AS3是拿不到startBtn的child的,因为 Sprite 不是动态类,无法声明它的child。这时候想要拿到startBtn内的文本框就要使用 getChildByName 方法。当然要先给child一个name:

//function addBtn
txt.name = "btnText";

最后是 stop 和 reset 的区别:reset 在 stop 之后把 currentCount 属性设为 0 。可以通过 最后编译的swf 体会一下。
fla文件下载

Flash动画

在线播放

(0)

相关推荐

  • AS3脚本编写的计时器效果代码

    public function ShowTimer(){     stage.scaleMode = StageScaleMode.NO_SCALE;     stage.align = StageAlign.TOP_LEFT;     initMc(); } AS3里新加了很多的常量来代替字符串.这给我们带来了很大的方便.比如要限制影片的缩放模式为固定尺寸,AS2时的代码为 Stage.scaleMode = "noScale"; 值是一个字符串,在输入的时候是没有代码提示的,很容易

  • shell脚本编写的俄罗斯方块游戏代码

    粘贴以下代码到一个空的Shell脚本文件中,并在Bash 中运行即可! 复制代码 代码如下: #!/bin/bash # Tetris Game# 10.21.2003 xhchen<[email]xhchen@winbond.com.tw[/email]> #APP declarationAPP_NAME="${0##*[\\/]}"APP_VERSION="1.0" #颜色定义cRed=1cGreen=2cYellow=3cBlue=4cFuchsi

  • Java性能工具JMeter实现上传与下载脚本编写

    目录 一.前言 二.预备知识 1.构造方法 2.创建功能 3.重命名和删除功能 4.获取功能 三.Java 实现文件上传下载功能 1.服务下载代码 2.前端代码 3.运行效果 四.JMeter 文件上传与下载脚本编写 1.文件上传脚本 2.文件下载脚本 五.总结 一.前言 性能测试工作中,文件上传也是经常见的性能压测场景之一,那么 JMeter 文件上传下载脚本怎么做? 知识点: Java 实现文件上传下载功能 JMeter 文件上传与下载脚本编写 二.预备知识 先学习下 Java API 关于

  • 基于mootools 1.3框架下的图片滑动效果代码

    效果预览如下: 实现原理: 容器采用相对定位,图片采用绝对定位,当鼠标移动到相应的图片上,改变去left属性,用tween实现动画效果. 代码分析:写一个picSlider类实现代码封装 复制代码 代码如下: <div id="container"> <img src="http://files.jb51.net/file_images/article/201104/r_song1.jpg" alt="" /> <i

  • shell脚本编写ping包及arp的监控并发送短信功能

    下面给大家分享shell脚本编写ping包及arp的监控并发送短信功能,具体代码如下所示: #!/bin/bash NOW="`date +%Y%m%d-%H:%M:%S`" PHONES=15134567893 IP=10.100.8.78 GATEWAY=10.100.30.1 #ping失误的短信内容 content1="host is failed" #arp主机网关失误的短信内容 content2="GW is failed" #pin

  • jQuery实现的简单折叠菜单(折叠面板)效果代码

    本文实例讲述了jQuery实现的简单折叠菜单(折叠面板)效果代码.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的折叠菜单,可展开一些内容,实际上称它为一个面板比较好,是一个折叠面板,使用了jQuery1.6.2插件. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-simple-toggle-zd-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD X

  • JS+CSS实现简易的滑动门效果代码

    本文实例讲述了JS+CSS实现简易的滑动门效果代码.分享给大家供大家参考.具体如下: 看了很多的滑动门和滑动菜单的资料,总算写出来了一个像样的滑动门,虽然外观不怎么样,但可以兼容火狐,还请老前辈们不要笑话,以后有好多西再请大家批评. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-simple-hdtx-demo-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1

  • JS仿淘宝实现的简单滑动门效果代码

    本文实例讲述了JS仿淘宝实现的简单滑动门效果代码.分享给大家供大家参考.具体如下: 这是一个简单的仿淘宝滑动门效果代码,个人感觉真的挺不错,以前有过一款和这个差不多.在滑动门里你可以再次布局你的网页,可以做成一个功能超强大的导航,原示例是一个拼音索引程序,改成菜单也是可以的. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-f-taobao-simple-hdm-style-demo/ 具体代码如下: <!DOCTYPE html PUBL

  • JS基于VML技术实现的五角星礼花效果代码

    本文实例讲述了JS基于VML技术实现的五角星礼花效果代码.分享给大家供大家参考,具体如下: 这里演示的五角星礼花,基于HTML+js+VML技术共同编写实现,打开页面即可看到礼花绽放效果,五角星符号可以换成其它的符号,本效果可轻松修改成烟花升空爆炸特效,不过你要事先制作一个烟花的GIF小图,然后替换掉五角星. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-vml-wjx-style-demo/ 具体代码如下: <HTML> <HE

  • js实现仿爱微网两级导航菜单效果代码

    本文实例讲述了js实现仿爱微网两级导航菜单效果代码.分享给大家供大家参考.具体如下: 这是一款仿爱微网两级导航菜单,tab选项卡形式的导航菜单,原生js做的tab选项卡型的导航菜单,需要鼠标点击才切换出二级子菜单,可修改成鼠标移过去就更换内容的形式. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-fawei-web-nav-menu-style-codes/ 具体代码如下: <html> <head> <title&g

随机推荐