范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

FlashCS4如何制作时尚的时钟走动动画效果

  这篇教程向大家介绍Flash CS4制作时尚的时钟走动gif动画效果,本例主要介绍如何取得系统时间,以及如何加载外部的swf皮肤文件。
  本例思路
  .绘制出背景效果,再新建几个fla文件用来存储时钟界面(必须发布swf文件),然后绘制出时钟效果。
  . 编写加载皮肤的管理类,然后编写出时钟类,再加载swf皮肤文件,创建出时钟对象。
  Part 1 定制皮肤
  (1)新建一个500×350像素的空白文档,然后使用“矩形工具”绘制出如图所示的斑马条纹背景。
  技巧与提示:
  图所示是本例所创建的几个.fla文件,这几个文件专门用来存储时钟界面的皮肤,并且发布了swf文件,它们统一保存在skin文件夹内。
  (2)下面只介绍一个皮肤文件的制作方法。新建一个Flash文件,并将其保存为01,再新建一个影片剪辑(名称为Bg),然后绘制出如图所示的时钟界面。
  (3)新建一个“刻度”图层,然后绘制出表盘的刻度,如图所示。
  (4)使用“椭圆工具”绘制一个只有边框的灰色圆形,然后删除圆形内的线条,再删除圆形,如图所示。
  (5)将时针所在的刻度直线进行加粗显示,然后添加时刻文字(静态文本),如图所示。
  (6)新建一个“高光”图层,然后绘制一个半圆形作为高光区域,再设置填充类型为“线性”,并设置第1个色标颜色为(R:255,G:255,B:255),Alpha为60%,第2个色标颜色为(R: 43,G:43,B:43),Alpha为0%,效果如图所示。
  (7)新建3个影片剪辑,分别命名为Hours、Minutes和Seconds,然后分别在对应的影片剪辑中绘制出如图所示时针、分针和秒针。
  Part 2 输入控制程序
  (1)切换到“库”面板,然后分别为4个影片剪辑添加元件类,如图所示。
  技巧与提示:
  在前面步骤中只创建了4个影片剪辑元件,它们只存在于“库”面板中,当发布成swf文件时,此时查看swf文件则为空,因为没有编写任何程序来进行引用和控制,就相当于该swf文件中只包含4个元件类,下面将通过加载该swf文件来引用和创建其元件类实例。
  (2)新建一个ActionScript文件,并将其保存为SkinManager,然后编写出加载皮肤的管理类程序。
  AS3代码
  复制代码
  代码如下:
  var skin_mc:SkinManager = SkinManager.getInstance();
  skin_mc.loadSkin("skin/01.swf");
  skin_mc.addEventListener("skincomplete",completeHandler);
  function completeHandler(e:Event) {
  var class_name:String = "Bg";
  var _class:Class = skin_mc.getClass(class_name);
  var new_sprite:Sprite = new _class();
  addChild(new_sprite);
  }
  AS3代码
  复制代码
  代码如下:
  /**
  * 该类为皮肤加载管理类
  * @author lbynet
  * @version 0.1
  */
  package {
  import flash.display.Loader;
  import flash.net.URLRequest;
  import flash.events.Event;
  import flash.events.EventDispatcher;
  public class SkinManager extends EventDispatcher {
  public static const SKINCOMPLETE:String="skincomplete";
  private static var instance:SkinManager=new SkinManager();
  public var loader:Loader;
  public function SkinManager() {
  if (instance != null) {
  throw new Error("不能直接创建对象");
  }
  loader=new Loader();
  }
  public static function getInstance():SkinManager {
  return instance;
  }
  public function loadSkin(path:String):void {
  loader.load(new URLRequest(path));
  loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
  }
  private function completeHandler(e:Event) {
  //移除侦听器
  loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeHandler);
  dispatchEvent(new Event(SkinManager.SKINCOMPLETE));//发布事件
  }
  public function getClass(className:String):Class {
  try {
  return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
  } catch (e:Error) {
  throw new Error(className + " definition not found in " + e.toString());
  }
  return null;
  }
  }
  }
  技术看板:关于SkinManager类涉及到的难点
  有一定编程基础的用户很容易看出该类使用了很常用的“设计模式”中的单件模式,通过提供该类公有的静态方法getInstance()作为返回唯一的实例对象,并且可以对该实例进行全局访问。
  (3)新建一个ActionScript文件,并将其保存为Clock,下面编写时钟类的程序代码。该类接收3个Sprite类型的对象参数,它们分别来自前面3个元件类所创建的实例(如第21~28行代码),在创建实例时接收完这3个参数后,然后调用init()方法来注册ENTER_FRAME事件,并在侦听器函数enterFrameHandler()中创建Date的实例,再取得一个特定时间点的时、分和秒值(如第35~38行代码)。
  AS3代码
  复制代码
  代码如下:
  /**
  * 该类为时钟原理类
  * @author lbynet
  * @version 0.1
  */
  package {
  import Date;
  import flash.display.Sprite;
  import flash.events.Event;
  public class Clock extends Sprite {
  private var hour:Number;
  private var minute:Number;
  private var second:Number;
  private var _hours:Sprite;
  private var _minutes:Sprite;
  private var _seconds:Sprite;
  public function Clock(h:Sprite,m:Sprite,s:Sprite) {
  //将传递进来的三个对象参数,赋给该时钟类的三个属性
  this._hours = h;
  this._minutes = m;
  this._seconds = s;
  init();
  }
  private function init() {
  this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
  }
  private function enterFrameHandler(event:Event) {
  var now:Date = new Date(); // 构造一个Date实例,Date 类的实例表示一个特定时间点
  hour = now.getHours(); //获取系统当前的时,分,秒
  minute = now.getMinutes();
  second = now.getSeconds();
  //下面控制时针、分针、秒针的旋转规律、旋转角度 ,后面进行具体解释
  _hours.rotation = hour*30 + Math.floor(minute*6/12);
  _minutes.rotation = minute*6 + Math.floor(second*6/60);
  _seconds.rotation = second*6;
  }
  }
  }
  技术看板:时、分、秒的算法
  小时(hours):时钟转动一圈是360°,总共花12个小时,每一小时为30°,为了更加接近生活中时钟的运动效果,因此再加上时针(hour)走完一小时的角度(30°)与分针(minute)走完一小时的角度(360°),那么它们的比例关系就是1/12。
  分钟(minutes):时钟转动一圈是360°,总共花60分钟,每一分钟是6°,再加上分针(minute)走完一分钟的角度6°与秒针(second)走过一分钟的角度360°,那么它们的比例关系就是1/60。
  秒钟(seconds):时钟转动一圈是360°,共60秒钟,每一秒钟是6°。
  (4)返回到flash文档中,然后新建一个AS图层,并编写出程序。通过SkinManager类来加载皮肤文件,并注册侦听器(如第1~3行代码);第5~8行代码是创建存储时钟组成元素的容器,并设置舞台为居中对齐;接着创建sprite_name和class_name两个数组,来分别存储将要被加载swf文件中的元件类的实例名称以及元件类名称(如10和11行代码);当加载完swf时钟皮肤文件后,调用侦听器函数completeHandler(),在侦听器函数中执行一个for()循环语句,然后创建4个(_length值等于4)被加载swf文件中的元件类实例,并在添加实例名称后统一添加到container_mc容器中(如第16~21行代码)。
  AS3代码
  复制代码
  代码如下:
  var skin_mc:SkinManager = SkinManager.getInstance();
  skin_mc.loadSkin("skin/01.swf");
  skin_mc.addEventListener("skincomplete",completeHandler);
  var container_mc:Sprite = new Sprite();
  addChild(container_mc);
  container_mc.x = stage.stageWidth/2;
  container_mc.y = stage.stageHeight/2;
  var sprite_name:Array = ["bg_mc","hours_mc","minutes_mc","seconds_mc"];
  var class_name:Array = ["Bg","Hours","Minutes","Seconds"];
  var _length:uint = class_name.length;
  function completeHandler(e:Event) {
  var _class:Class;
  var new_sprite:Sprite;
  for (var i=0; i<_length; i++) {
  _class = skin_mc.getClass(class_name[i]);
  new_sprite = new _class();
  new_sprite.name = sprite_name[i];
  container_mc.addChild(new_sprite);
  }
  create();
  }
  //创建一个时钟(Clock)类,传入三个参数,参数类型都是Sprite类型,
  //它们分别是舞台上存在的三个影片剪辑元件,实例名分别为
  //时针(hours_mc) , 分针(minutes_mc) , 秒针(seconds_mc)
  function create() {
  var a:Clock = new Clock(getItem("hours_mc"),getItem("minutes_mc"),getItem("seconds_mc"));
  addChild(a);
  }
  function getItem(Name:String):* {
  return container_mc.getChildByName(Name);
  }
  创建完被加载swf文件中的元件类实例后,调用create()方法来创建Clock类实例(如第28行代码);getItem()方法主要是通过container_mc.getChildByName()方法来取得container_mc容器中指定名称的对象。
  (5)除了前面的方法外,还可以通过随机指定路径来加载swf皮肤文件。
  AS3代码
  复制代码
  代码如下:
  var skin_mc:SkinManager = SkinManager.getInstance();
  skin_mc.loadSkin("skin/0"+Math.ceil(Math.random()*4)+".swf");
  skin_mc.addEventListener("skincomplete",completeHandler);
  (6)按Ctrl+Enter组合键发布本例的所有程序。
  教程结束,以上就是Flash CS4制作时尚的时钟走动gif动画效果,希望能对大家有所帮助!

三频路由器和双频路由器区别三频路由器和双频路由器主要区别在于所支持的无线频段。其中,三频路由器支持2。4GHz5GHz5。8GHz频段,双频路由器支持2。4GHz5GHz。相比双频路由器,三频路由器可以提供路由器是选单频还是双频路由器选购技巧介绍详解夏天正式向我们招手,又到了一边吹空调,一边吃西瓜,一边连WiFi上网的时候了。但路由器选购的时候其中一大疑问就是到底选单频还是双频,选双频的都说速度快,选单频的都说便宜,那路由器选怎么让双频无线WiFi变成单频双频无线WiFi切换方法详解你是不是也有过这样的体验在客厅的时候,手机连的是5GHz无线WiFi,在卧室厕所的时候,手动切换连接2。4GHz无线WiFi,但渐渐的,你会只连接2。4GHz无线WiFi来运用。这变频空调和定频空调哪个好变频空调和定频空调区别介绍详解摘要汇聚专业的空调品牌知识,为消费者提供最权威的空调十大品牌及独到的空调选购知识,是消费者们了解哪个牌子的空调好的重要参考依据,是行业中最具参考价值的品牌知识查询网站。随着天气越来精密空调与普通空调有何区别精密空调与普通空调对比分析精密空调是在近30年中逐渐发展起来的一个新机种,它是指能够充分满足机房环境要求的机房专用精密空调机(也称恒温恒湿空调)。早期机房使用普通空调机时,常常出现由于环境温湿参数控制不当,无线路由器的三种加密方式?无线路由器主要提供了三种无线安全类型WPAPSKWPA2PSKWPAWPA2以及WEP。不同的安全类型下,安全设置项不同。1。WPAPSKWPA2PSKWPAPSKWPA2PSK安家用挂烫机和电熨斗有何区别家用挂烫机和电熨斗区别介绍任何物件都有它的好坏,家用挂烫机和电熨斗也是如此,而我们选择挂烫机和电熨斗的时候,就是要考虑到自己家庭的使用情况和使用条件了。今天小编想要来为您介绍选购的就是挂烫机和电熨斗,挂烫机各种机械键盘轴有何区别各种机械键盘轴区别介绍分析现在随着生活品质的提高,很多高端发烧友已经不满足薄膜键盘的手感了,机械键盘又重新回到了大家的视野里来了,对于很多人来说,机械键盘怎么选,如何挑选适合自己的机械键盘呢?本文将从核心的一拖一和一拖多风管机有何区别一拖一和一拖多区别介绍我们知道现在很多的家庭都装有风管机,如果进入装有风管机的家庭,我们会感觉到非常的凉爽,给人以舒适的感觉。但是现在科学技术进步非常快,作为风管机,不单单是拥有众多的品牌,还拥有非常多多联机与风管机有何区别多联机与风管机对比分析详解市面上的空调种类很多,用户们对多联机和风管机的区别多有疑问。那它们有什么特点?究竟哪个好?又该如何选择呢?下面小编将进行对比分析,希望能对您有所帮助。多联机组采用变频压缩机,中央空轩辕剑六配置要求游戏名称轩辕剑六英文名称XuanYuanSword6游戏类型角色扮演游戏制作大宇资讯DOMO小组游戏发行搜狐畅游游戏平台PC上市时间2013年暑假轩辕剑六游戏介绍轩辕剑六是华人中文
移动硬盘无法打开怎么办移动硬盘无法打开解决方法详解移动硬盘无法打开怎么办?哪些方法可以解决?出现这种情况多数是因为移动硬盘的分区数据错误导致,少数情况是不争取的插拔,如果可以安全移除移动硬盘之后更换其它USB接口试试,因为有可能是移动硬盘无法打开怎么办移动硬盘无法打开解决方法移动硬盘无法打开怎么办?如果更换USB接口问题依旧,建议先进入到计算机管理里面的磁盘管理查看移动银盘的状态,如果正常两块硬盘的情况,一般第一款是主机的硬盘,第二块则是移动硬盘,查看移动硬盘无法读取怎么办移动硬盘无法读取原因图文很多时候,我们需要从电脑里面把一些资料和视频数据导出的时候,我们就需要借助用到移动硬盘。因为移动硬盘具有非常的储存量,以及其存取的数据比较稳定,我们可以很方便的存储数据以及视频,随可移动存储设备显示好几个怎么办图解电脑如果插入手机u盘磁盘或是其他的内存卡,那么是会立即显示出ldquo可移动存储设备rdquo,只要打开ldquo我的电脑rdquo就可以看到这些可移动存储设备的身影。但是有时候电USB存储设备无法识别怎么办USB存储设备无法识别解决方法1。前置USB线接错。当主板上的USB线和机箱上的前置USB接口对应相接时把正负接反就会发生这类故障,这也是相当危险的,因为正负接反很可能会使得USB移动硬盘不显示盘符怎么办移动硬盘显示不出来解决方法详解摘要移动硬盘插在电脑上显示识别USB接口,电脑居然找不到移动硬盘,这是什么原因呢?移动硬盘不显示盘符怎么办?下面小编就阿里介绍一下移动硬盘显示不出来的原因和解决方法。移动硬盘无法显Win7不显示移动硬盘盘符怎么办win7系统上插入移动硬盘不显示,无法打开怎么办呢?今天给大家分享下win7不显示移动硬盘盘符的解决办法。Win7不显示移动硬盘盘符的解决方法步骤如下1首先打开开始菜单,右键点击计U盘不显示盘符怎么办U盘没了盘符解决方法详解U盘不显示盘符怎么回事?U盘为什么不显示盘符了?今天IT百科跟大家一起探讨U盘的盘符没有了怎么办!相信不少朋友在使用U盘的时候,当把U盘插入到电脑以后,在我的电脑打开后U盘的盘符不u盘不显示没有盘符怎么办u盘不显示没有盘符解决方法图文u盘不显示盘符该怎么办呢?插入电脑的u盘已经被系统识别到,却没有盘符,有时连u盘都没有被电脑系统所识别,碰到这样的情况该怎么解决呢?今天小编就跟大家介绍插入电脑的u盘不显示盘符解决U盘不显示盘符怎么办U盘不显示盘符解决方法详解有些时候我们总会遇到这样的尴尬场面U盘插上电脑后,明明电脑已经识别到U盘,却每每显示不出盘符,让很多小伙伴们都非常着急上火。那么,如何搞定U盘不显示盘符?今天小编就教大家一个简单的U盘不被电脑识别怎么办U盘在电脑上打不开解决方法U盘不被电脑识别怎么办?如果U盘插入电脑,电脑提示ldquo无法识别的设备rdquo,说明U盘的供电电路正常。接着检查U盘的USB接口电路故障。下面,我们就来看看U盘在电脑上打不开