FLASH计数器教程

      宝贝多 2004-12-27 20:59
一、必要条件

1.动态空间必须能支持ASP和FSO(文本读写)。

2.可以使用AspCheck.asp测试空间是否支持,下载解压后FTP到空间,用IE浏览AspCheck.asp。

3.如果AspCheck.asp不能浏览,说明空间不支持ASP,如果能浏览但是“Scripting.FileSystemObject (FSO 文本文件读写)”这个项目后面没有打勾,说明空间不支持FSO(文本读写)。



二、准备工作

4.在站点文件夹根目录下新设一个jsq文件夹。

5.用“记事本”在jsq文件夹内建立二个空白的txt文件。jsq-a.txt和jsq-b.txt备用。

6.准备好十张大小一样的0-9的数字图片备用,尺寸不能太大。



三、FLASH步骤--制作个位数

7.打开FLASH MX(FLASH MX 2004也可以)。

8.属性:大小:随意(可以小一点);背景:随意。

9.将十张0-9的图片导入到库中。

10.新建元件:名称:B1;行为:影片剪辑

11.在元件B1的第1帧,插入“空白关键帧”,将表示“1”的图片拖入第1帧,居中对齐。

12.同样,将“2”拖入第2帧……将“0”拖入第10帧。

13.再同样,将“1”拖入第11帧……将“0”拖入第20帧。

14.回到“场景1”,将“元件B1”拖入第一层第一帧,放在靠右的地方。

15.按“Ctrl+Enter”测试影片,可以看到0-9的数字在跳动。



四、FLASH步骤--控制个位数

16.在“元件B1”的第1帧,打开“动作面板”,进入“专家模式”。

17.写上:c1=8

18.在第20帧,写上:gotoAndStop(c1);

19.按“Ctrl+Enter”测试影片,可以看到数字跳动后停留在“8”上。然后将FLASH源文件保存到jsq文件夹里。

20.打开jsq-b.txt文件。

21.写上:c1=8 (注意:后面不能有空格、回车符……)

22.保存关闭jsq-b.txt文件。

22.把第1帧的语句改写成:loadVariables("jsq-b.txt","","get")

23.按“Ctrl+Enter”测试影片,也可以看到数字跳动后停留在“8”上。

24.用“1-20”中任意的数字代替jsq-b.txt文件里“c1=”后面的数字,测试影片后发现数字跳动后,会停留在代替的数字上。

25.当用“0”代替时,也就是“c1=0”时,测试影片会发现数字不停跳动,不会停下来。



五、FLASH步骤--完成其他位数

26.分别制作“元件B2”……“元件B6”,分别表示十位、百位……。(可以用复制的方法)

27.所有元件第1帧的语句不变。

28.“元件B2”第20帧的语句改为:gotoAndStop(c2);

29.“元件B3”第20帧的语句改为:gotoAndStop(c3);

30.依此类推……

31.回到场景中,在第2层拖入“元件B2”……在第6层拖入“元件B6”,依次排列。

32.将jsq-b.txt文件的内容改为:c1=*&c2=*&c3=*&c4=*&c5=*&c6=*

33.其中的“*”,分别用1-20中不同的数字代替,(如:c1=5&c2=12&c3=18&c4=6&c5=10&c6=2 )。

34.测试影片后发现数字跳动后,会停留在不同的数字上。保存文件,导出影片jsq.swf,文件保存在jsq文件夹里。这样FLASH部分的制作就完成了。



六、ASP的控制

35.打开jsq-a.txt文件,写入:1000001

36.打开 Dreamweaver MX,(Dreamweaver MX 2004也可以),在jsq文件夹里,新建一个jsq.asp文件。

37.打开jsq.asp文件,进入“代码视图”。

38.在<body> 与 </body>之间,插入下面这段代码:

<%

Set Fs=Server.CreateObject("Scripting.FileSystemObject")

Set CF=Fs.OpenTextFile(Server.MapPath("jsq-a.txt"),1)

countA=CF.ReadLine

CF.Close

Set CF=Fs.OpenTextFile(Server.MapPath("jsq-a.txt"),2)

CF.WriteLine(countA+1)

CF.Close

Set CF=Fs.OpenTextFile(Server.MapPath("jsq-b.txt"),2)

c0=CStr(countA)

c1=Mid(c0,7,1)

c2=Mid(c0,6,1)

c3=Mid(c0,5,1)

c4=Mid(c0,4,1)

c5=Mid(c0,3,1)

c6=Mid(c0,2,1)

CF.WriteLine("c6=1"&c6&"&c5=1"&c5&"&c4=1"&c4&"&c3=1"&c3&"&c2=1"&c2&"&c1=1"&c1&"&")

CF.Close

%>

39.上课时会详细解释代码的含义和思路。进入“设计视图”,插入jsq.swf文件。

40.保存文件,上传整个jsq文件夹及其所有文件。打开IE浏览器浏览,刷新时计数器的数字会随之变化。





附:

二套0-9数字的图片

ASP语句解释:

Set Fs=Server.CreateObject("Scripting.FileSystemObject")----创建一个文本文件对象Fs
Set CF=Fs.OpenTextFile(Server.MapPath("jsq-a.txt"),1) ----建立实例CF,用读的方式打开jsq-a.txt文件
countA=CF.ReadLine ----从jsq-a.txt读取数据并赋值到变量countA
CF.Close ----关闭实例CF,释放资源
Set CF=Fs.OpenTextFile(Server.MapPath("jsq-a.txt"),2) ----建立实例CF,用写的方式打开jsq-a.txt文件
CF.WriteLine(countA+1) ----将变量countA的数值+1后,写入jsq-a.txt文件
CF.Close ----关闭实例CF,释放资源

Set CF=Fs.OpenTextFile(Server.MapPath("jsq-b.txt"),2) ----建立实例CF,用写的方式打开jsq-b.txt文件
c0=CStr(countA) ----将变量countA的值转换成字符串,赋值到c0
c1=Mid(c0,7,1) ----取字符串变量c0的左边第7位,赋值到c1
c2=Mid(c0,6,1) ----取字符串变量c0的左边第6位,赋值到c2
c3=Mid(c0,5,1) ----取字符串变量c0的左边第5位,赋值到c3
c4=Mid(c0,4,1) ----取字符串变量c0的左边第4位,赋值到c4
c5=Mid(c0,3,1) ----取字符串变量c0的左边第3位,赋值到c5
c6=Mid(c0,2,1) ----取字符串变量c0的左边第2位,赋值到c6
CF.WriteLine("c6=1"&c6&"&c5=1"&c5&"&c4=1"&c4&"&c3=1"&c3&"&c2=1"&c2&"&c1=1"&c1&"&")
----将c6=1?&c5=1?&c4=1?&c3=1?&c2=1?&c1=1?&)写入到jsq-b.txt文件
CF.Close ----关闭实例CF,释放资源



关于在IE浏览器里刷新时看不见数字变化的问题?

如果刷新几遍都数字都没有变化,请将IE浏览器关闭,再重新打开,看看有没有变化?如果数字变了,说明这个计算器有效,如果数字还没变化,说明某个步骤有问题。对有效的计算器,如果想每次刷新都看到数字变化,请按照以下方法改一下IE的设置:工具-选项-常规-临时文件-设置-检查所存网页的较新版本-“每次访问此页时检查”,(原来这里默认的设置是“自动”)。



关于在其他网页中应用这个计算器的问题?

这个计算器可以在其他asp网页中应用,在代码视图里,只要将ASP的代码和wsf的代码复制下来,粘贴到要应用计算器的网页中,再将 jsq-a.txt,jsq-b.txt,jsq.swf 这三个文件的路径改成 /jsq/jsq-a.txt,/jsq/jsq-b.txt,/jsq/jsq.swf 就可以了。

***
点此查看



* * * *



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, 缫来纹鹈鸐1~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$#@60;$#@62;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代码:

  $#@60;%
  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
  %$#@62;

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

***
点此查看
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}