旅途笔记

岂有豪情似旧时,花开花落两由之
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Flash+XML实现新闻系统

Posted on 2007-04-05 15:33  allonkwok  阅读(676)  评论(0编辑  收藏  举报
通过这个例子可以学习:
1>如何加载与解析XML;
2>如何用TextField.StyleSheet格式化文本
先看下XML的结构:

<?xml version="1.0" encoding="UTF-8"?>
<csdeny>
<news date="2006-12-22" title="中国茧子"><content>设计网站,羽化成蝶·美丽如你</content></news>
<news date="2006-12-22" title="CCTV"><content>中国中央电视台</content></news>
<news date="2006-12-22" title="QQ"><content>QQ聊天工具</content></news>
<news date="2006-12-22" title="SOHU"><content>我的搜狐博客</content></news>
<news date="2006-12-22" title="盛世龙腾"><content>河南盛世龙腾电子科技有限公司</content></news>
<news date="2006-12-22" title="MYBJOJO"><content>MYBJOJO的个人网站</content></news>
<news date="2006-12-22" 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(){                                     //parseXML()的定义
    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.attributes.title+"</.title>";
            mytextarea.text+="<.date>"+e.attributes.date+"</.date>";
            mytextarea.text+="<.content>"+e.firstChild.firstChild.nodeValue+"</.content><br>";
        }
}
好了,很简单吧
可以对myStyles扩充,flash支持的html标签还有不少