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

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:Flash精致动画图标:跟随鼠标移动的放大镜
目前流行的图标设计软件组合是Illustrator/CorelDrawPhotoshop(本文不讨论像素图标),做出来的图标是静态的,假如要应用于Flash,必须通过位图导入,且不

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.3xml的onLoad事件:

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

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

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

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

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

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

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

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

分享:逼真打火机制作 by 月下狂想曲
本例实现的是一次性打火机的仿真效果。在该效果地制作中用到了很多实用的技巧与方法,如帧的跳转技巧,火焰、火花的制作方法;效果中还用到了一些常用的控制语句

来源:设计前沿//所属分类:Flash教程/更新时间:2008-03-05
相关Flash教程