当前在线人数

Flash 网页新闻浮动板的制作(XML应用)

[ 来源:不详 | 作者:佚名 | 时间:2007-10-25 8:01:25 | 浏览: ]

Flash 网页新闻浮动板的制作(XML应用)

                                                           EmilMatthew(EmilMatthew@126.com)

摘要:

我们经常可以看到一些网站上有一些用javascript写的新闻浮动板的效果。

    我尝试用flash+xml做了一个新闻浮动板,基本实现了读取xml中的内容并在点击时有超链接效果。

Abstract:

       Nowadays,we could see lots of floating-news board be implemented on the web, which always be coded under javascript .

       I have tried to use flash with xml technology to implement a floating-news board, and achieve the goal which could parse

the data on the xml and have a redirect url effect while user click the news.

关键词:Xml,网页浮动板

Key Words:Xml,floating-news board

 

1)      设计阶段:

1.1 总体框架:

构想应该是比较简单的,就是如图一所示的程序流程图:

                           

                                                       1

 

1.2系统详细设计:

                                                        2

由于在做这个程序的时候,我对Design Patterns所知甚少,所以,唯一想到的可以降低设计复杂度的方式就是用对象组合,也就是把相应的功能分配给相应的执行对象,再逐级下放。最后由底层类来执行相应的功能

 

 

2)实现阶段:

在实现的时候还是会遇到一些困难的,我就把我遇到的主要问题以及解决的方式小结如下:

 

2.1防止乱码:

transXml.ignoreWhite=true;

System.useCodepage = true;

 

2.2htmlText:

听说Flash是支持CSS,但支持度有限,尝试了一下一个让超链接变色的效果,失败了。

有热心的朋友也提供了方案,不过我试过了,也失败了.

 

至于颜色就直接用<font  color='#0000FF'>来做就是了,如下:

private function htmlStrMake(info:String,href:String,textHolder:TextField):Void

       {

              var tmpStr:String="<font color='#0000FF'><a href='";  

              tmpStr+=href;

              tmpStr+="' target='_blank'>";

              tmpStr+=info+"</a></font>";

              textHolder.htmlText=tmpStr;

       }

 

2.3xmlonLoad事件:

       也许是出于安全性的考虑,在我的尝试过程中,发现flash对读入的xml文件的存取相当的严格。能施展拳脚的空间基本上只有onLoad了。

一旦出了onLoad,那么在onLoad里所动态创建及获得的一切,不论是否与xml文件中的数据有关,都会变得无效.

       所以,一开始的设计中,我是准备把xml文件的读取与后面的动态效果分离的。后来,经过了失败的阵痛后,我不得不把所有的主要程序全放在onLoad中,虽然肯定是不合理的,但我实在是没办法~~~~

 

 

2.4对于读入xml内容的处理:

读入的xml数据,一律是被当作String来处理的,所以,当读入的是数字的时候,应该用parseIntparseFloat加以转型。

如果只是直接用,即不用它来做任何运算,还是没问题的。但我并不推荐这样做。

 

 

2.5对于使用的xml文件格式的说明.

首行的属性值存放了和这个影片有关的数据,对应介绍如下:

<newsMsg  width='204' height='176'  newsnum='5' rowinterval='2' fps='80' vy='0.5'>

width:影片的宽度。

height:影片的高度.

newsnum:新闻的数目.

rowinterval:每条新闻所占的行数,我这里的一行是22个像素单位.

fps:setInterval中的每帧的所消耗的毫秒数.

vy:新闻文本框向上移动的速度。

 

主要的内容的存放格式为:

       <news>

             <headline>欢迎使用google</headline>

             <url>http://www.google.com<;/url>

       </news>

 

2.6改进:

       为了使一个NewsReader可以为多个网页所用,或者可以在一个网页中加载不同的新闻,可以采用网页向Flash中传递参数的方式来进行.

       Flash中定义变量:

       var address:String=xmlAddress;

       Html文件在加载Flash的语句片段中:

<Object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase=….>                                <param name="allowScriptAccess" value="sameDomain" />

             

              <param name="FlashVars" value="xmlAddress=xmlFiles/mainIndexNews.xml" />

<!—注意:上面的语句即设 定了Flash中变量xmlAddress的值,如有多个变量,’&’间隔-->

<embed src=.../ >

</Object>

 

       另外,在实现复用时,应注意:

a)       xmlReader.swf文件应存放于网站的根目录下,这是由Flash播放器的安全约束所决定的.

b)      在标签的设定上,要在以下两处设定相同的引用资源(swf文件)

<param name="movie" value="../../xmlNewsBoard.swf" />

       <embed src="../../xmlNewsBoard.swf"

c)  而对于object中的id属性及embed中的name属性,在复用的情况下,不同的复用的名称不应重复.

d) 对于资源文件的命名及对资源文件的引用,大小写务必一致,由于服务器端多为linux,对大小写是严格区分的.      

 

 

参考文献:

[1]Danger,Flash ActionScript2.0字典(chm)》版,made by Danger,2004.

 

                                                                                                         完成日:05/7/11

                                                                                                         修改日:06/1/19

 

效果展示:

http://www.emilmatthew.zk.cn/EmilPapers/06_04ffBoard/sample.html

 

本文最佳浏览定位:

http://www.emilmatthew.zk.cn/EmilPapers/06_04ffBoard/index.htm

 

程序源码下载:

http://emilmatthew.51.net/EmilPapers/06_04ffBoard/code.rar

 

若直接点击无法下载,请将下载的超链接粘接至浏览器地址栏后按回车.若不出意外,此时应能下载.


共有0人参与评价,平均得分:0分
评论内容只代表网友观点,与本站立场无关! 查看完整内容
   

您的位置

关于我们  |  广告联系  |  版权声明  |  帮助中心  |  友情链接  |  网站地图
QQ:281875486    E-mail:web_maths456@yahoo.com.cn  QQ群:4837049(验证456)