积少成多Flash ActionScript 3.0(4) - 实例之Hello World, 时钟, 计时器

python:实现使用Tkinter显示一个数字时钟(附完整源码) 阅读详情
积少成多Flash ActionScript 3.0(4) - 实例之Hello World, 时钟, 计时器



作者:webabcd


介绍
通过3个简单的示例,对使用Flash ActionScript 3.0开发程序有个感性的认识

  • Hello World - 演示最基本的交互。即按个按钮,就会在 UI 上显示对应的信息
  • 时钟 - 演示如何做最基本的动画处理。即对时钟的时,分,秒针做旋转动画
  • 计时器 - 演示稍微复杂一点的交互。即一个计时器,可以对其做启动,暂停,停止的操作



1、Hello World
UI上放置一个名为lblMsg的Label,一个名为txtName的TextInput,一个名为btnHello的Button
Greeter.as

//  包名称要与文件的目录结构对应,类名称要与文件名对应
package code
{
    
/*
     * 打招呼类
     
*/

    public class Greeter 
    
{
        
/*
         * 打招呼方法
         * @param name        名称
         * @return             打招呼的结果
         
*/

        public static 
function sayHello(name:String = "World"):String 
        
{
            
return "<font color='#FFFFFF'>Hello: " + name + "</font>";
        }

    }

}


Hello.as

//  包
package
{
    
// 导入相关的类
    import flash.display.MovieClip;
    import fl.events.ComponentEvent;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.text.TextField;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.utils.getTimer;
    import code.Greeter;    
    
    public class Hello extends MovieClip
    
{        
        
// 构造函数
        public function Hello()
        
{
            InitHello();
        }

        
        
/*---- Hello 的 Demo 开始 ----*/
        
function InitHello()
        
{
            
// 给 Label 组件的 htmlText 属性赋值
            lblMsg.htmlText = Greeter.sayHello();

            
// 为对象增加事件处理器(第一个参数:事件类型;第二个参数:事件处理器,也就是一个方法)
            txtName.addEventListener(ComponentEvent.ENTER, sayHello);
            btnHello.addEventListener(ComponentEvent.BUTTON_DOWN, sayHello);
        }

        
        
function sayHello(e:ComponentEvent):void 
        
{
            lblMsg.htmlText 
= Greeter.sayHello(txtName.text);    
        }

        
/*---- Hello 的 Demo 结束 ----*/
    }

}



2、时钟
在UI上画3个MovieClip,分别对应时,分,秒针,分别取名为arrowHour,arrowMinute,arrowSecond
Hello.as

//  包
package
{
    
// 导入相关的类
    import flash.display.MovieClip;
    import fl.events.ComponentEvent;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.text.TextField;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.utils.getTimer;
    import code.Greeter;    
    
    public class Hello extends MovieClip
    
{        
        
// 构造函数
        public function Hello()
        
{            
            InitClock();
        }

        
        
/*---- 时钟的 Demo 开始 ----*/
        private 
var timer:Timer;
        
function InitClock()
        
{
            
// 实例化计时器,其参数为 tick 的间隔
            timer = new Timer(1000); 
    
            
// 指定 onTick() 方法来处理 Timer 事件
            timer.addEventListener(TimerEvent.TIMER, onTick);

            
// 启动计时器
            timer.start();
        }
        
        
        
function onTick(event:TimerEvent):void
        
{    
            
// 实例化 Date ,返回宿主服务器的当前时间
            var now:Date = new Date();
            
            
// rotation - 对指定对象做顺时针旋转的角度数
            arrowHour.rotation = now.getHours() * 30 + (now.getMinutes() / 2);        
            arrowMinute.rotation 
= now.getMinutes() * 6 + (now.getSeconds() / 10);    
            arrowSecond.rotation 
= now.getSeconds() * 6;        
        }

        
/*---- 时钟的 Demo 结束 ----*/
    }

}



3、计时器
在UI上放置4个动态文本,分别对应时,分,秒,毫秒,分别取名为txtHour,txtMinute,txtSecond,txtMillisecond。再放置3个按钮,分别对应计时器的启动,暂停,停止操作,分别取名为btnPlay,btnPause,btnStop
Hello.as

//  包
package
{
    
// 导入相关的类
    import flash.display.MovieClip;
    import fl.events.ComponentEvent;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.text.TextField;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.utils.getTimer;
    import code.Greeter;    
    
    public class Hello extends MovieClip
    
{        
        
// 构造函数
        public function Hello()
        
{
            InitTimer();
        }

        
        
/*---- 计时器的 Demo 开始 ----*/
        
// 计时器需要显示的 时,分,秒,毫秒 变量
        var hour:Number = 0;
        
var minute:Number = 0;
        
var second:Number = 0;
        
var millisecond:Number = 0;
        
        
// 计时器是否在计时
        var running:Boolean = false;
        
        
// 播放器加载的总时长
        var playerLength:Number = 0;
        
// 计时器暂停的总时长
        var pauseLength:Number = 0;
        
// 计时器计时的总时长
        var timerLength:Number = 0;
        
        
function InitTimer()
        
{
            
// 设置暂停按钮初始为隐藏状态
            btnPause.visible = false;
            
            
// addEventListener(EventType.EVENT_NAME, eventResponse) - 为对象添加事件监听器
            //     EventType.EVENT_NAME - 事件类型
            //     eventResponse - 事件处理器(响应该事件的方法)
            // 为 3 个按钮增加 Click 事件的事件处理器
            btnPlay.addEventListener(MouseEvent.CLICK, clickHandler);
            btnPause.addEventListener(MouseEvent.CLICK, clickHandler);
            btnStop.addEventListener(MouseEvent.CLICK, clickHandler);
            
            
// 每次进入此帧时的事件处理器
            // 因为本例就 1 帧,速率为 30 fps,所以每 1/30 秒会触发一次此事件
            this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        
        
function clickHandler(event:MouseEvent):void
        
{
            
// event.target - 触发此事件的对象
            switch(event.target)
            
{
                
case btnPlay:
                    playTimer(); 
// 启动计时器
                    btnPlay.visible = false;
                    btnPause.visible 
= true;
                    
break;
                
case btnPause:
                    pauseTimer(); 
// 暂停计时器
                    btnPlay.visible = true;
                    btnPause.visible 
= false;
                    
break;
                
case btnStop:
                    stopTimer(); 
// 停止计时器
                    btnPlay.visible = true;
                    btnPause.visible 
= false;
                    
break;
            }
    
        }

        
        
function enterFrameHandler(event:Event):void
        
{            
            
if (running) 
            
{
                
// 当前计时器需要显示的时间
                var goTime:Number = getTimer() - pauseLength - timerLength;
            
                
// 从总的毫秒时间中解析出时间的 时,分,秒,毫秒 部分
                // Math.floor(val:Number) - 返回小于等于指定数字的最接近的整数
                hour = Math.floor( goTime/3600/1000 );
                minute 
= Math.floor( (goTime/3600/1000 - hour) * 60 );
                second 
= Math.floor( ((goTime/3600/1000 - hour) * 60 - minute) * 60 );
                millisecond 
= Math.floor( goTime - (second + minute*60 + hour*3600) * 1000 );
                
                
// 在 UI 上显示格式化后的时间
                txtSecond.text = formatNumber(second);
                txtMinute.text 
= formatNumber(minute);
                txtHour.text 
= formatNumber(hour);
                txtMillisecond.text 
= formatNumber2(millisecond);
            }

        }

        
        
// 停止计时器。相当于暂停计时器,然后数据归零
        function stopTimer():void
        
{
            txtHour.text 
= "00";
            txtMinute.text 
= "00";
            txtSecond.text 
= "00";
            txtMillisecond.text 
= "000";
            
            
// 计时器总的启动时长
            timerLength = getTimer() - pauseLength;
            
            pauseTimer();
        }

        
        
function playTimer():void
        
{
            
// 计时器总的暂停时长
            pauseLength += getTimer() - playerLength;
            
            running 
= true;
        }

        
        
function pauseTimer():void
        
{
            
// getTimer() - 播放器(swf)被加载后,所经过的时长。单位:毫秒
            playerLength = getTimer();
            
            running 
= false;
        }

        
        
// 格式化 时,分,秒,返回长度为两个字符的字符串
        function formatNumber(n:Number):String
        
{
            
if( n < 10 )
                
return ("0" + n.toString());
            
            
return n.toString();
        }

        
        
// 格式化 毫秒,返回长度为三个字符的字符串
        function formatNumber2(n:Number):String
        
{
            
if( n < 10 )
                
return ("00" + n.toString());
            
else if (n < 100)
                
return ("0" + n.toString());
            
            
return n.toString();
        }

        
/*---- 计时器的 Demo 结束 ----*/
    }

}



OK
[源码下载]

python趣味编程-使用 Tkinter 的简单模拟时钟程序 在 Python 免费源代码中使用 Tkinter 的简单模拟时钟是一个用编程语言编码的系统。该项目包含使用 tkinter 模块显示应用程序的模拟接口的基本功能。该项目将显示一个与计算机中的真实时钟运行相同的模拟时钟。这可以让正在学习计算机相关课程、想要开发简单的 Python 编程程序的学生受益。这个是一个简单的项目,可以为您的计算机显示实时模拟时钟。这个可以在编程中提供一些基本的编码技术。可以免费下载,只需阅读以下内容以获取更多信息。此应用程序仅用于。基本信息Python内置Python IDLE。 阅读详情

相关推荐

深入探索Flash ActionScript3.0倒计时技术实践

ActionScript 3.0(AS3.0)是Adobe Flash平台的编程语言,它是一种基于ECMAScript的高级面向对象编程语言,被广泛应用于Adobe Flash Player和Adobe AIR平台上的应用程序开发。AS3.0提供了一套全面的编程工具,包括丰富的事件处理、面向对象的编程范式以及性能优化等。

weixin_30838971的博客 1027

Tkinter库实现的简单电子时钟

使用Tkinter库实现的简单电子时钟应用程序,可以显示当前的时间和日期,并且窗口透明且无标题栏。root.attributes(‘-alpha’, 0.7) # 设置窗口透明度。root.overrideredirect(True) # 隐藏标题栏。

longe20111104的博客 396

clock.swf时钟flash

clock.swf时钟flash 网页素材

别具一格的Flash时钟

来自:易特网论坛制作时钟各个部件  1.选择File→New或点击工具栏上的New图标新建一个文件。单击Modify→Movie打开Movie Properties面板,调整好你喜欢的影片尺寸(如宽度400px,高度300px)。为精确控制起见,点击View→Grid→Show Grid打开网格显示开关,点击View→Grid→Snap to Grid打开吸附到网格功能,这样会使对关键帧内容的编辑

轻尘居 1467

flash编写的小时钟,插入在ppt中可以方便对时间的掌握

flash编写的小时钟,插入在ppt中可以方便对时间的掌握 flash编写的小时钟,插入在ppt中可以方便对时间的掌握 flash编写的小时钟,插入在ppt中可以方便对时间的掌握 flash编写的小时钟,插入在ppt中可以方便对时间的掌握 flash编写的小时钟,插入在ppt中可以方便对时间的掌握

flash透明时钟140个

这是我收集的140个flash透明时钟。对美化网页的同学们很有用哟··

积少成多Flash(4) - ActionScript 3.0 实例之Hello World, 时钟, 计时器

[索引页][源码下载]积少成多Flash(4) - ActionScript 3.0 实例之Hello World, 时钟, 计时器 作者:webabcd介绍通过3个简单的示例,对使用 Flash ActionScript 3.0开发程序有个感性的认识 Hello World - 演示最基本的交互。即按个按钮,就会在 UI 上显示对应的信息 时钟 -...

weixin_33724570的博客 279

LED电子屏Flash时间时钟.rar

LED风格的电子屏Flash时间时钟,LED时钟特效,Flash8源文件素材,基于Flash氏量技术绘制,看上去非常酷的效果。

使用tkinter 电子时钟 实现时间日期 可实现透明 无标题栏

可以设置窗口的透明度。同样,我们也可以设置窗口的大小和位置。我们可以看到,这个 tkinter 电子时钟使用了。函数来定时更新时间和日期即可。可以隐藏窗口的标题栏,

jixn的博客 6572

FLash数字时钟

在这送一个Flash的数字时钟给大家放在网站上使用,希望大家都共同学习

swf格式的时钟 flash小时钟

时钟 flash swf swf格式的时钟 flash小时钟

HTML+CSS 玻璃数字时钟(一键复制)

HTML+CSS 玻璃数字时钟(一键复制)

前端必备小窝 884

S32DS IDE调试技巧:如何用条件断点精准捕获汽车电子MCU的硬件状态变化

本文详细介绍了S32DS IDE中条件断点功能在汽车电子MCU开发中的应用技巧。通过精准捕获硬件状态变化,工程师可以高效调试外设寄存器异常、时序敏感型交互等复杂场景,大幅提升汽车电子系统的开发效率。文章还提供了多种实战案例和性能优化建议,帮助开发者充分利用S32DS的调试功能。

CAT789的专栏 208

vue实现-年、月、日、时、分、秒、星期?

废话不多说,直接copy代码使用。

AI布道师丨波仔椿 1488

Windows 游戏 EXCEPTION_ACCESS_VIOLATION 修复:3类硬件问题与5步软件排查法

本文提供Windows游戏EXCEPTION_ACCESS_VIOLATION错误的终极修复指南,涵盖3类硬件问题(内存故障、显卡问题、超频不稳定)和5步软件排查法(文件验证、驱动更新、DEP调整等),帮助玩家彻底解决0xFFFFFFFFFFFFFFFF内存访问冲突问题。

weixin_31856057的博客 2452

自动化Google Chrome的强大工具:chromedriver下载、安装、简单使用

本文介绍了 ChromeDriver 的基本概念和安装配置方法,重点讲解了如何通过 Selenium 实现 Chrome 浏览器的自动化测试。内容涵盖了 ChromeDriver 下载、版本匹配、依赖引入和简单的自动化测试脚本示例,帮助读者快速上手并避免常见问题。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 88万+

FLASH时钟(www.lancu.com)

FLASH时钟2003-7-28 14:12:29效果描述用FLASH做的小闹种知识点1. fs command2.简单的avascript3.基本的action script4. movie clip的控制   见过用FLASH制作的实时时钟吗?做一个精美的FLASH时钟放在桌面上,不要太酷哦!  准备工作  启动FLA

博客温国 3521

2026星宸科技数字IC设计笔试带答案

摘要:本文包含四个计算机科学领域的编程与逻辑设计题目解析。第一部分通过C语言程序补充水仙花数判断代码,考查循环结构和函数设计;第二部分分析Verilog代码的D触发器电路,讨论时序约束与时钟频率影响;第三部分详细讲解静态时序分析中的建立/保持时间计算与违例判断;第四部分计算机体系结构题目涉及CPI、MIPS计算和性能加速比分析。最后还包含一个逻辑代数化简的示例,展示基本的布尔代数简化技巧。这些题目全面覆盖了编程基础、数字电路设计、时序分析和计算机性能评估等核心知识点。(149字)

Open 121

前端页面显示的时间格式为:2022-03-18T01:46:08.000+00:00 如何转换为:年-月-日 时:分:秒 ?

解决办法: 第一种办法:后端格式处理,在后端转数据格式为字符串类型 第二种办法:前端格式处理, ElementUI 中 Table-column Attributes 列属性中有一个 formatter参数 ,用来格式化内容 , 里面可以支持一个函数 Function(row, column, cellValue, index) ,供我们调用, 下面是第二种方法演示: 步骤① 在时间标签中加入属性 :fromatter=“formateDate” 。 步骤② 在method:{} 中写 fo

MS_SONG的博客 2万+

腾讯微搭低代码开发实战电子书:医疗挂号小程序

本书通过一个完整的“医疗挂号小程序”项目,深度讲解腾讯微搭(WeDa)低代码平台在复杂业务场景下的实战应用。从登录体系搭建、用户注册,到就诊人管理、科室排班与预约下单,全程遵循“配置+逻辑+实战”的思路,带领读者从零实现具备商业级可用性的医疗挂号小程序,掌握低代码开发的核心技巧与业务落地能力。

低代码布道师的博客 954

路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)

RRT*算法针对传统RRT算法进行了渐进最优改进,在添加节点到搜索树的过程中进行重连选择。本文图解RRT*算法原理,并采用ROS C++、Python、Matlab三种语言实现算法,加深理解

FRIGIDWINTER的博客 9405

打造你自己的专业时钟

Part 1: 简介 让我们开始吧! 在读完这篇文章后,你就可以做自己的时钟了。首先,我们会制作简单的数字时钟来显示小时和分钟,接着我们会使我们的项目更复杂。你应该明白ActionScript的基础知识!!! 另外:变量是英文的,但我会解释所有的变量。 我是在Flash Professional 8上做的,不过我想,Flash 5应该就可以做了。 注:如果不想学习这个,可以直接到第4部分。...

新浪博客搬家测试账号 296

YOLOv8 架构改造实战:添加 P2 小目标检测头与 P6 超大目标检测头

上采样是指将特征图的空间尺寸变大(例如从 20×20 → 80×80),用来提升图像的分辨率。常见于解码器结构或特征融合中。下采样是指将特征图的空间尺寸缩小(例如从 256×256 → 128×128),通常用于减少计算量、提取更高级语义特征。操作目的方法尺寸变化上采样放大特征图插值算法变大(如2×)下采样压缩特征图、提取语义stride卷积等变小(如1/2)

FJN110的博客 575
上一篇: 积少成多Flash ActionScript 3.0(3) - 基础之以文本形式、XML形式和JSON形式与ASP.NET通信
下一篇: 积少成多Flash ActionScript 3.0(5) - 实例之闹钟
thinker28754
博客等级 码龄25年 81粉丝 303原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值