Flash+XML实现新闻系统
类别: Flash教程
通过这个例子可以学习:
1>如何加载与解析XML;2>如何用TextField.StyleSheet格式化文本
先看下XML的结构:
<?xml version="1.0" encoding="UTF-8"?>
<csdeny>
<news date="2006-02-03" title="国务委员陈至立"><content>4月5日下午,国务委员陈至立在教育部长周济</content></news>
<news date="2006-02-03" title="全发"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="这是"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="豆腐"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="也额外"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="士大"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="方法"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
</csdeny>
<csdeny>
<news date="2006-02-03" title="国务委员陈至立"><content>4月5日下午,国务委员陈至立在教育部长周济</content></news>
<news date="2006-02-03" title="全发"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="这是"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="豆腐"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="也额外"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="士大"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
<news date="2006-02-03" title="方法"><content>我国豆腐干反对广泛大会反对弧光灯法</content></news>
</csdeny>
下面 就是在flash中的工作了:
1>新建flash文档,设置舞台大小(我的设置是150*200)
2>拖一个TextArea组件放入舞台,设置大小和舞台大小一致,实例名为mytextarea;
3>给第一帧添加代码:
var myStyles:TextField.StyleSheet=new TextField.StyleSheet();//申明myStyles为StyleSheet类
myStyles.setStyle(".title", //设置标题显示样式
{fontFamily: ’宋体,_sans’,
fontSize: ’12px’,
color: ’#003300’,
textAlign: ’left’});
myStyles.setStyle(".date", //设置时间显示样式
{fontFamily: ’Arial’,
fontSize: ’9px’,
color: ’#990000’,
textAlign: ’right’});
myStyles.setStyle(".content", //设置内容显示样式
{fontFamily: ’宋体,_sans’,
fontSize: ’12px’,
color: ’#003300’,
textAlign: ’left’});
var newsXML:XML=new XML(); //申明XML类
newsXML.ignoreWhite=true; //忽略空白
newsXML.onLoad=function(success){
if(success){
parseXML(); //如过加载XML成功,就调用parseXML()解析XML
}
}
newsXML.load("news.xml"); //载入外部XML
function parseXML(){ //parseX
ML()的定义
var e=newsXML.firstChild.childNodes;
var total=e.length;
mytextarea.wordWrap=true; //设置TextArea可以自动换行
mytextarea.editable=false; //TextArea不可编辑
mytextarea.hScrollPolicy=off; //TextArea横向滚动条关闭
mytextarea.html=true; //支持XML
mytextarea.styleSheet=myStyles; //调用前面设置好的样式
for(i=0;i<total;i++){ //解析XML并格式化文本
mytextarea.text+="<.title>"+e[i].attributes.title+"</.title>";
mytextarea.text+="<.date>"+e[i].attributes.date+"</.date>";
mytextarea.text+="<.content>"+e[i].firstChild.firstChild.nodeValue+"</.content><br>";
}
}
myStyles.setStyle(".title", //设置标题显示样式
{fontFamily: ’宋体,_sans’,
fontSize: ’12px’,
color: ’#003300’,
textAlign: ’left’});
myStyles.setStyle(".date", //设置时间显示样式
{fontFamily: ’Arial’,
fontSize: ’9px’,
color: ’#990000’,
textAlign: ’right’});
myStyles.setStyle(".content", //设置内容显示样式
{fontFamily: ’宋体,_sans’,
fontSize: ’12px’,
color: ’#003300’,
textAlign: ’left’});
var newsXML:XML=new XML(); //申明XML类
newsXML.ignoreWhite=true; //忽略空白
newsXML.onLoad=function(success){
if(success){
parseXML(); //如过加载XML成功,就调用parseXML()解析XML
}
}
newsXML.load("news.xml"); //载入外部XML
function parseXML(){ //parseX
ML()的定义
var e=newsXML.firstChild.childNodes;
var total=e.length;
mytextarea.wordWrap=true; //设置TextArea可以自动换行
mytextarea.editable=false; //TextArea不可编辑
mytextarea.hScrollPolicy=off; //TextArea横向滚动条关闭
mytextarea.html=true; //支持XML
mytextarea.styleSheet=myStyles; //调用前面设置好的样式
for(i=0;i<total;i++){ //解析XML并格式化文本
mytextarea.text+="<.title>"+e[i].attributes.title+"</.title>";
mytextarea.text+="<.date>"+e[i].attributes.date+"</.date>";
mytextarea.text+="<.content>"+e[i].firstChild.firstChild.nodeValue+"</.content><br>";
}
}
好了,很简单吧
PS:可以对myStyles扩充,flash支持的html标签还有不少:)
- 上一篇: Actionscript 优化指南
- 下一篇: Flash常用代码的介绍
-= 资 源 教 程 =-
文 章 搜 索