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

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动画效果,希望能对大家有所帮助!

win10游戏体验!win10玩游戏怎么样?win10游戏体验!Win10玩游戏怎么样虽然有些说Win10玩游戏比较卡,但是其实还是有做优化的,Win10将捆绑DirectX12。DirectX12相较旧版DirectX而言Win10怎么安装?win10安装教程Win10怎么安装?win10安装教程10月2日,微软发布了新一代操作系统,然而让人有些没想到的是,版本号不是Win9而是Win10!那么Win10怎么安装呢?百科为你提供win1Win1010166版开始菜单卡死怎么解决Win1010166版开始菜单卡死解决办法win10系统预览版已经更新到10166啦,但是不少用户升级10166版后开始菜单就经常出现卡死点击win10开始菜单没反应的情况,这是怎么回事呢?这个问题怎么解决?出现开始菜单卡怎么查看Win10设备的性能查看Win10设备性能的方法想要查看系统设备的性能,在win7中有一个评分等级可以用。但是想查看win10性能,win10系统中已经取消了这个评分等级,那么我们又该怎么查看Win10设备的性能呢?方法一1。查Win10系统backgroundTaskHost占用cpu大怎么办Win10系统backgroundTaskHost占用cpu大解决办法很多人发现win10系统有时候用着用着突然变得很卡,打开任务管理器就发现,原来CPU占用达到了很高得比率。而占CPU的就是一个叫backgroundTaskHost的进程,这个时候怎么样修改Win10标题栏颜色修改Win10标题栏颜色的方法win10标题栏颜色有多种选择,但是默认的那个颜色却很难看。所以就有必要修改一下Win10窗口标题栏颜色,怎么修改呢?一起来看一下修改win10标题栏颜色步骤1首先在win10系统激活Win10时提示许可证已过期怎么解决激活Win10是提示许可证已过期解决办法有一些win10用户在激活win10的时候,看到一个提示显示此版本许可证已过期,这是怎么回事呢?这个问题又该怎么解决?通过测试,出现这样的提示,一个原因是你的电脑时间设置不对,可能Win10系统Snap分屏功能怎么使用Win10系统Snap分屏功能使用方法因为现在电脑屏幕的尺寸越来越大,这也就为分屏显示带来了条件。而win10系统就具有Snap分屏功能,win10分屏功能可以把屏幕分成多个部分独立显示。那么win10系统Snap分屏Win10系统怎么找到Explorer。exe进程的位置Win10系统找到Exploer。exe进程位置的方法win10系统中如果遇到什么卡死,或者系统反应慢的问题。重启Explorer。exe进程是一个很有效的解决手段,那么win10Explorer。exe进程在哪里?win10系统中怎Win10虚拟机无法连接网络怎么解决Win10虚拟机无法连接网络解决办法在最近版本的win10系统中,已经可以支持使用虚拟机。但是有的用户却发现,虚拟机中没有办法连接网络,没有网络的虚拟机,使用效果大打折扣。本文就来介绍一下win10虚拟机没有办法连接Win10待机以后wifi连接不上了怎么办Win10待机后wifi连接不上解决办法很多时候我们都会设置win10系统自动待机,所以离开电脑一段时间回来,唤醒待机后却发现win10WiFi掉线了,再连怎么也连不上,这个时候应该怎么办呢?解决方法1首先在win10系
荣耀9青春版怎么样荣耀9青春版配置怎么样荣耀9青春版怎么样2017年12月21日备受期待的千元美学潮品荣耀9青春版正式发布。作为千元市场重磅产品,荣耀9青春版秉承科技潮品理念,全面提升产品ID美学设计,更将全面屏四摄等科荣耀9青春版全面屏手机荣耀9青春版全面屏手机怎么样北京时间12月21日,荣耀在深圳发布2017年度的最后一部手机荣耀9青春版全面屏手机,采用5。65英寸189屏幕,2160x1080分辨率。搭载麒麟八核处理器,34GBRAM326华为G9青春版指纹识别怎么设置详解如今的手机支持指纹识别不再是什么新奇事物,近日推出的华为G9青春版支持指纹识别功能,支持指纹解锁指纹支付等常规功能。那么华为G9青春版指纹识别怎么设置呢?下面为大家介绍一下华为G9华为p8max参数配置及产品报价图文华为作为目前国内数一数二的手机行业巨头,在目前竞争异常激烈的手机市场中有许多能拿得出手的手机产品。与其他品牌一样,华为的手机也一直在发展升级,越来越强大的手机硬件配置以及外形设计,华为P8什么配置参数?华为P8标配有什么?华为P8什么配置参数配置参数方面,华为P8搭配5。2英寸1920times1080P的屏幕,搭载麒麟935930八核处理器,配备3GBRAM,16GB64GB,配备1300万像素摄华为P7什么配置参数?华为P7标配有什么?华为P7什么配置参数华为P7机身尺寸为139。8x68。8x6。5mm,采用5。0英寸屏幕,因此整体自然要比华为P6大上一圈。而6。5mm的厚度也比P6的6。18mm厚一些,不过仍新版华为P8MAX什么时候上市新版华为P8MAX价格详解近日,华为又推出新手机了!其实也不算是一款全新的手机,只是之前P8MAX的迭代产品mdashmdashP8MAX标配版。该机售价2888元,相比高配版降价500元,已于11月20日荣耀4a怎么样荣耀4a配置参数华为荣耀手机是一款新兴的智能手机,刚刚上市就受到很多人的喜爱,是一款性价比非常高的手机。今年刚刚上市的华为荣耀4a手机也是引起一番轰动,下面来看看华为荣耀4a手机的一些相关配置吧。天玑2000Plus处理器怎么样天玑2000Plus参数详细介绍天玑2000Plus处理器怎么样?天玑2000Plus参数配置是什么?最近,联发科天玑2000Plus处理器曝光了,相信不少用户都还不是很了解,下面就来看看天玑2000Plus参数魅族15什么时候发布魅族15最新消息爆料图文魅族是很多人注入了青春情感的一个品牌,从M8到后来的MX梦想系列,魅族始终用一种不跟随的姿态笑傲国产手机市场。这次的备受瞩目的魅族15系列机是魅友们期盼了大半年的新旗舰。那么这次的魅族PRO7什么时候发布魅族PRO7发布会时间详情魅族PRO7最近在网络上炒得火热,关于魅族Pro7工程机谍照以及保护套的图片非常多,很多煤油都在关心魅族PRO7什么时候发布,就给大家介绍下魅族PRO7发布会时间,一起来看看。魅族