╋艺 镇╋╋网站网络|程序语言|Flash╋┣◇FLASH交流 → 巧用Flash制作动态网页


  共有15592人关注过本帖树形打印复制链接

主题:巧用Flash制作动态网页

帅哥哟,离线,有人找我吗?
乐魔舞
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 天之飞雪
等级:青蜂侠 帖子:1427 积分:11370 威望:0 精华:7 注册:2007/12/25 16:21:28
巧用Flash制作动态网页  发帖心情 Post By:2007/12/28 [显示全部帖子]

face13|巧用Flash制作动态网页|陈新华||网页由静态向动态过渡是一大进步。经过我多次实践发现,插入太多动画的网页容量过大,而让浏览者等不及看完就匆匆结束了。而太简单的动画又难以表达一个完整的意思。后来我干脆把整个网页都用Flash来做,做完后用Flash中的发布命令发布HTML文件和SWF文件。这样既实现了动态效果,又使得生成的文件不太大,只有几十KB。一般地,SWF文件在浏览时无法下载更无法打开,无形中保护了你的产权。   SWF动画文件中的图像、声音、文字和动画等都是固化在其中的,所以新的问题又出现了,就是如何在SWF文件中实现动态数据的显示?可用Flash中的FS Command来实现。以下,我以一个动态日历(包括动态日期、星期和时间)的例子来介绍FS Command的用法。   进入Flash 4.0,新建一个文件或打开一个已经做好的Flash页面。选择Insert/layer,新建一个层。确认新层为当前层后,用矩形工具画一无边框线的蓝色长方形(大小约为100px×120px)作为底色。再选择Text(文本)工具,设置字体为黑体、字号为16、颜色为白色后,写上文字“公元 年 月”、“星期”、“时间”三行文字 锁定该层后,再新建一层,确认新建层为当前层后,选择Text工具并选中Text Field按钮。设置字体为Arial、字色白色、字号为16号,在公元后画一个高度为一个单位、宽度为4个单位的长方形文本框。选择Arraw(箭头)工具,点击刚画好的矩形文本框,使它处于选中状态。选择Modify/Text Field,出现Text Field Properties对话框。在Ariable(变量)中输入Year,在Option中选中Disable Editing和Disable Selecting(使得显示的年份不可修改)两项 用同样的方法,在“年”后画一文本框,取变量名为“Month”,用于显示月份,在“星期”上画一文本框,取变量名为“Date”,用于显示几号,在“星期”右画一文本框,取变量名为“Day”,用于显示星期几,在“时间”右的三个格子里分别画三个文本框,取变量名为Hour(时)、Minute(分)、Second(秒),分别用于显示时、分、秒。注意的是,表示几号的文本框的字号设大一点,比如36号,表示时间的文本框的字号设小一点,比如10号。 锁定该层后,再新建一层,确认新建层为当前层后,选择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 = ″一″ 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()); 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中进一步调整字体、字号、颜色等,发布后再用浏览器试试。注意:最好几个文件放入同一文件,这样修改起来简单)。 |2007-8-22 7:12:32


  
“艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部