china.com
主页
新闻
体育
游戏
文化
教育
健康
财经
科技
旅游
军事
娱乐
商贸
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  


巧用Flash制作动态网页

2000-08-24 14:18:35

  网页由静态向动态过渡是一大进步。经过我多次实践发现,插入太多动画的网页容量过大,而让浏览者等不及看完就匆匆结束了。而太简单的动画又难以表达一个完整的意思。后来我干脆把整个网页都用Flash来做,做完后用Flash中的发布命令发布HTML文件和SWF文件。这样既实现了动态效果,又使得生成的文件不太大,只有几十KB。一般地,SWF文件在浏览时无法下载更无法打开,无形中保护了你的产权。

  SWF动画文件中的图像、声音、文字和动画等都是固化在其中的,所以新的问题又出现了,就是如何在SWF文件中实现动态数据的显示?可用Flash中的FS Command来实现。以下,我以一个动态日历(包括动态日期、星期和时间)的例子来介绍FS Command的用法。

  进入Flash 4.0,新建一个文件或打开一个已经做好的Flash页面。选择Insert/layer,新建一个层。确认新层为当前层后,用矩形工具画一无边框线的蓝色长方形(大小约为100px×120px)作为底色。再选择Text(文本)工具,设置字体为黑体、字号为16、颜色为白色后,写上文字“公元 年 月”、“星期”、“时间”三行文字。具体分布见图1。
229070__03201t01.jpg   图1229070__03201t03.jpg   图3 229070__03201t07.jpg  图7

  锁定该层后,再新建一层,确认新建层为当前层后,选择Text工具并选中Text Field按钮。设置字体为Arial、字色白色、字号为16号,在公元后画一个高度为一个单位、宽度为4个单位的长方形文本框。选择Arraw(箭头)工具,点击刚画好的矩形文本框,使它处于选中状态。选择Modify/Text Field,出现Text Field Properties对话框。在Ariable(变量)中输入Year,在Option中选中Disable Editing和Disable Selecting(使得显示的年份不可修改)两项(见图2所示)。
229070__03201t02.jpg
  图2

  用同样的方法,在“年”后画一文本框,取变量名为“Month”,用于显示月份,在“星期”上画一文本框,取变量名为“Date”,用于显示几号,在“星期”右画一文本框,取变量名为“Day”,用于显示星期几,在“时间”右的三个格子里分别画三个文本框,取变量名为Hour(时)、Minute(分)、Second(秒),分别用于显示时、分、秒。注意的是,表示几号的文本框的字号设大一点,比如36号,表示时间的文本框的字号设小一点,比如10号。设好后的效果如前面图3所示。
229070__03201t04.jpg
  图4

  锁定该层后,再新建一层,确认新建层为当前层后,选择Insert/New Symbol,出现对话框Symbol Properties,设置见图4,确定后,对Movie Clip(电影夹)进行如下编辑:双击第一帧的小圆圈,出现Frame Properties对话框,选Action,在Action下面点“+”号,在下拉菜单中选FS Command,在Command中填入Showrl(显示日历),如图5所示,其作用是向网页中发送一个名为Showrl的FS Command。在第二帧插入一空白帧,其作用是不断向网页发送Showrl命令。回到场景中,按Ctrl+l,打开Library,把 FS Command拖到场景中。保存文件取名为rl.fla(日历)。同时按默认的文件名进行Publish(发布)。即选File/Publish Setting,出现对话框,按如图6设置后,点Publish就生成rl.html和rl.swl两个文件。这时用浏览器去看rl.html时,还看不到日期与时间,还必须进行如下设置:以Frontpage2000为例,打开Frontpage,选择新建,选插入/文件,在文件名浏览框中选择rl.html。(在Dreamwaever中直接插入动画文件rl.swl)。以Index.htm保存文件,然后在rl.htm的HTML源文件的〈head〉〈/head〉之间加入如下代码,再次保存后就搞定了。

  〈script language=″JAVASCRIPT″〉

  var InternetExplorer=navigator.appName.indexOf(″Microsoft″)==-1;

  function rl_DOFSCommand(command,args)

   {

   var movie=InternetExplorer ? rl:document.rl

   var now=new Date();

  if(now.getDay()==0)date = ″日″

  if(now.getDay()==1)date = ″一″
229070__03201t05.jpg
  图5

  if(now.getDay()==2)date = ″二″

  if(now.getDay()==3)date = ″三″

  if(now.getDay()==4)date = ″四″

  if(now.getDay()==5)date = ″五″

  if(now.getDay()==6)date = ″六″

  if(command=″showrl″){

  movie.setvariable(″/:year″,now.getYear());

  movie.setvariable(″/:minute″,now.getMinutes());

  movie.setvariable(″/:hour″,now.getHours());

  movie.setvariable(″/:second″,now.getSeconds());
229070__03201t06.jpg
  图6

  movie.setvariable(″/:date″,date);

  movie.setvariable(″/:month″,now.getMonth()+1);

  movie.setvariable(″/:day″,now.getDate());

  

  }

  }

  〈/script〉

  〈script language=″VBscript″〉

  sub rl_FSCommand(ByVal command,ByVal args)

  call rl_DOFSCommand(command,args)

  end sub

  〈/SCript〉

  其中var movie……行以前是Flash的FS Command调用Javascript的固定格式,照搬就是了,var now……行是定义一个Now的变量,并初始为当天。if(now.getDay()……“日”到if(now.getDay()……“六”行是把显示星期的数字改为汉字显示以符合中国人的习惯。if(command……行表示当网页接受命令为Showrl的FS Command时就执行{ ...}中的内容。Movie.setvariable中的Movie是rl的标识(ID),就是获指定动画(rl)的每个变量的值。最后5行是IE浏览器所固定的,如果你用Netscape浏览器可以不理会这5行。保存后,在浏览器中就可以看到如前面图7的效果了。如果不满意,可以在Flash中进一步调整字体、字号、颜色等,发布后再用浏览器试试。注意:最好几个文件放入同一文件,这样修改起来简单)。

  摘自《赛迪网》 殷红霞/文


科技检索


中华网推荐

  • 1000名医生在线咨询

  • 中国足球队官方网站

  • 鸦片玫瑰(新版)

  • 精选股票天地

  • 闪光的flash教程

  • 中华网汽车世界

  • 为你的爱情出谋划策

  • 网文精选——野百合集

  • 世界文化遗产在中国

  • 历届香港小姐风姿集



  •  


    网络教室编辑信箱
    版权声明 | 本站检索 | 联系方法 | 刊登广告 | 使用说明 | 关于中华网 | 豁免条款

    版权所有 中华网