2000年08月10日17:03


用FLASH制作计数器
 郭涛

  小小计数器上的数字不断变化着,每用隔一段时间都会有增长,作为主页的拥有者,这种感觉真是难以形容。那么,能不能用Flash的动画效果制作一个计数器,为我们带来更令人激动的情景呢?比如,当一个访问者进入你的主页浏览时,计数器不需要你刷新页面就会产生动态的变化,是正在滚动的计数器。

  这个Flash计数器是由两部分组成。一部分用于表现,使用Flash制作,那么另一部分用来统计,使用ASP制作。

  一、计数器的Flash部分

  1.画出计数器中0~9的数字图像,每个数字都做成大小一致的一张小图,最好是矢量的。但因为计数器不用很大,所以位图的也可以。打开Flash,然后把画好的图像逐一引入到你的Flash里,根据每张图的大小和你需要的位数来确定movie大小。我的图是15×25的,需要5位,所以movie尺寸是75×25。然后Insert→New symbol属性是Graphic,起个名字叫作counternum。把数字图像从上到下按0~9的顺序排整齐。再创建一个叫roller的属性为Move Clip(简称MC)的Symbol。在此MC里画一个文本框,用右键点出文本框的Properties,在ariable里填digit,在Options里,把后三项打钩,倒数第三项的text length为1,utlines用默认的就行了。

  2.在Symbol里加入两个新层,利用Flash的mask(遮罩)功能。第一层里画一个和每个数字图像大小相同的实心矩形,目的是用它来遮罩数字串(counternum)。进入下面的一层,把存有数字串的Symbol拉到这一层,把字串里的“0”套在那个矩形中,使它正好被矩形压住,隔50帧左右插入一个Keyframe(关键帧),把数字串向上拉(计数器加1),直到“9”,和那个矩形重合。在这两帧中做一个Motion。现在选择矩形层为遮罩并把时间轴延长到和下面那层一样长,拖动时间控制柄应该能看到0~9一个一个滚动出现了!回到刚才那个放文本框的层,时间轴和下面找平后在第一帧的Action里加入stop。现在拖动时间控制柄,同时观察下面的mask,当“1”全部出现后,在此帧中加入Action:
  If (Digit = ″1″)
   Stop
  End If
  后面的帧依次类推,mask里的数字是多少Digit就等于多少,作用是使数字串产生滚动并停止于Digit变量当时的值。在最后一帧的Action里写入Go to and Play (2)。

  3.回到scene,把刚刚做的那个MC重复拖到里面,一共5个,排整齐后应该正好把movie填满。

  4.每个MC起一个Instance Name,比如依次起名M1~M5。再添加一个新层,第一帧里写入如下Action:
  Load Variables (″counter.txt″, 0)
  Set Variable: ″/M1:Digit″ = Substring ( c, 1, 1 )
  Set Variable: ″/M2:Digit″ = Substring ( c, 2, 1 )
  Set Variable: ″/M3:Digit″ = Substring ( c, 3, 1 )
  Set Variable: ″/M4:Digit″ = Substring ( c, 4, 1 )
  Set Variable: ″/M5:Digit″ = Substring ( c, 5, 1 )
  Go to and Play (″StartOver″)

  第二帧的Action里写:
  Load Variables (″counter.txt″, 0)

  第三帧的Action里写:
  If (/M5:digit<>substring(c,5,1))
   Set Variable: ″/M1:Digit″ = Substring ( c, 1, 1 )
   Set Variable: ″/M2:Digit″ = Substring ( c, 2, 1 )
   Set Variable: ″/M3:Digit″ = Substring ( c, 3, 1 )
   Set Variable: ″/M4:Digit″ = Substring ( c, 4, 1 )
  Set Variable:″/M5:Digit″ = Substring ( c, 5, 1 )
  Go to and Play (″StartOver″)
  Else
  Go to and Play (″wait″)
  End If

  第四帧里的Label记为“startover”,并写入以下Action:
  Begin Tell Target (″/M1″)
   Play
  End Tell Target
  后面每隔几帧再创建一个Keyframe,隔的这几帧就是每个数字位变化的间隔时间。在这帧里写入以下Action:Begin Tell Target (″/M2″)
   Play
  End Tell Target
  依次类推……直到最后一帧,也就是/M5所在的那帧后紧挨着建立一个Keyframe,Label记成“wait”,再隔几帧创建一个Keyframe,Action里写入Go to and Play (2)。所隔的帧数是每次判断“c”是否有变化所隔的时间。现在,计数器的Flash部分也就完成了。

  二、ASP部分

  打开HTML编辑器,在body里写入以下VBScript代码:

  <%
  whichfile=server.mappath(″count.txt″)
   Set fs=CreateObject(″Scripting.FileSystemObject″)
   set thisfile=fs.opentextfile(whichfile,1,true)
   If Not thisFile.AtEndOfStream Then
   line=thisfile.Readline
   else line=″c=1″
   end if
   visitors=mid(line,3)
   thisfile.close
   visitors=visitors+1
   set out=fs.createtextfile(whichfile)
   out.writeline(″c=″&visitors)
   out.close
   set fs=nothing
  %>

  好了,一个用Flash制作的计数器就完成了。看完上面的介绍,你自己再用Flash做一个在线人数统计就很容易了。现在上传到服务器上去吧,记住服务器可要支持ASP哦! 

软件学园

字号 】 【关闭窗口
打印版 察看感言 Email推荐

热门评论文章

请 注 意
  1. 遵守中华人民共和国有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。
  2. 人民网拥有管理笔名和留言的一切权力。
  3. 您在人民网留言板发表的言论,人民网有权在网站内转载或引用。
  4. 如您对管理有意见请向留言板管理员人民日报网络中心反映。
关键词:



镜像:日本 教育网 科技网
E_mail:info@peopledaily.com.cn 新闻线索:rm@peopledaily.com.cn

人民日报简介 | 关于人民网 | 网站地图 | 在线帮助 | 广告服务 | 合作加盟 | 网站声明 | 联系我们 | ENGLISH  京ICP证000006号
人 民 网 版 权 所 有 ,未 经 书 面 授 权 禁 止 使 用
Copyright © 2002 by www.people.com.cn. all rights reserved