统计在线人数...

Flash处理外部XML文档数据

[ 来源:不详 | 作者:chooseflash | 时间:2007-9-11 下午 10:49:13 | 浏览:统计中... ]

.happiness04.com                         1
ChooseFlash-02.5                     http://www.happiness05.com                         1

ChooseFlash-03.1                     http://www.happiness01.com                         2
ChooseFlash-03.2                     http://www.happiness02.com                         2
ChooseFlash-03.3                     http://www.happiness03.com                         2
ChooseFlash-03.4                     http://www.happiness04.com                         2
ChooseFlash-03.5                     http://www.happiness05.com                         2

ChooseFlash-04.1                     http://www.happiness01.com                         3
ChooseFlash-04.2                     http://www.happiness02.com                         3
ChooseFlash-04.3                     http://www.happiness03.com                         3
ChooseFlash-04.4                     http://www.happiness04.com                         3
ChooseFlash-04.5                     http://www.happiness05.com                         3

ChooseFlash-05.1                     http://www.happiness01.com                         4
ChooseFlash-05.2                     http://www.happiness02.com                         4
ChooseFlash-05.3                     http://www.happiness03.com                         4
ChooseFlash-05.4                     http://www.happiness04.com                         4
ChooseFlash-05.5                     http://www.happiness05.com                         4
ChooseFlash-05.6                     http://www.happiness06.com                         4
ChooseFlash-05.7                     http://www.happiness07.com                         4

--------------------------------------------------
保存.关闭数据库.

数据库到这可以了.下面是ASP:

打开记事本,输入下面的代码,然后保存为 xml-008.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'xml-008.asp
dim conn,rs,sqlcom,name_arr,index_arr
'设置文档类型.
Response.ContentType="text/xml"
'输出XML文档.
Response.Write("<?xml version='1.0' encoding='gb2312'?>")
Response.Write("<!--xml-008.asp-->")
Response.Write("<ColumnList>")
'创建连接对象.
Set conn=Server.CreateObject("Adodb.Connection")
'这里用字符串方法连接数据库.
'"Provider=Microsoft.Jet.OLEDB.4.0; 这个是数据库驱动.
'Data Source="Server.MapPath("Data.mdb") 数据库文件的相对路径.
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("Data.mdb")
'创建记录集对象.
Set rs=Server.CreateObject("Adodb.RecordSet")
'查询数据库的sql语句.column是SQL中的关键字.要用[]中括号括起来.
sqlcom="select * from [column]"
'执行sql语句.
'1,1 只读.
'1,3 可读可写.
rs.Open sqlcom,conn,1,1
'重定义数组.
'rs.RecordCount 记录集中总的记录数.
Redim name_arr(rs.RecordCount)
Redim index_arr(rs.RecordCount)
'用for语句将column表中的数据循环出来.
'Ubound数组的最大上标.
for i=1 to Ubound(name_arr)
    '将column表中的columnName字段中的值存入数组name_arr.
    name_arr(i)=rs("columnName")
    '将column表中的columnIndex字段中的值存入数组index_arr.
    index_arr(i)=rs("columnIndex")
    '移到下一条数据.
    rs.MoveNext
Next
'这里用了嵌套for语句,
'第一个for j是将name_arr和index_arr数组中的数据读出来.也就是column表中的数据.
'第二个for k是将columnData表中的数据读出来.
'用for语句将name_arr和index_arr数组中的数据循环出来.
for j=1 to Ubound(name_arr)
    '关闭记录集.
    rs.Close
    '查询数据库的sql语句.
    '根据index_arr(j)数组中的值为条件来重复执行sql语句.
    sqlcom="select * from columnData where columnIndex="&index_arr(j)&""
    '执行sql语句.
    rs.Open sqlcom,conn,1,1
    '输出XML节点.
    Response.Write("<Column name='"&name_arr(j)&"'>")
    '用for语句将column表中的数据循环出来.
    for k=1 to rs.RecordCount
        '输出XML节点.
        Response.Write("<ColumnData name='"&rs("cdName")&"' url='"&rs("cdURL")&"' />")
        '移到下一条数据.
        rs.MoveNext
    Next
    '结束Column节点.
    Response.Write("</Column>")
Next
'结束ColumnList节点.
Response.Write("</ColumnList>")
'释放记录信对象.
Set rs=nothing
'关闭连接.
conn.Close
'释放连接对象.
Set conn=nothing
%>

在IIS中浏览xml-008.asp文件.可以看到xml文档的结构跟实验7中的xml文档结构一样.

下面就是Flash了

Flash中:
打开Flash,新建一个Flash文档,大小200*230,命名 xml-008.fla ;
新建一个图层,命名为:Actions
--------------------------------------------------
新建一个影片剪辑,命名为:btn_over ;此影片剪辑用来装饰鼠标滑过时的效果.
新建二个图层.分别命名为:
--------------------------------------------------
Actions
cont
--------------------------------------------------

在图层cont的第一帧画一个200*18,没有边框的矩形,填充颜色为#0099FF;透明度为0,x,y值为0,
在第三帧按[F6],选中该帧的矩形,将透明度调为50;再选中第一帧,打开属性面板,在补间那选形状.
在图层Actions的第三帧按[F6],在该帧输入代码: stop();
完成如图:

回到主场景,新建一个按钮.命名为:btn ;
在'指针经过','按下'帧按[F6].
将库中的 btn_over 影片剪辑拉到'指针经过'帧,x,y值为0,
再在'按下'帧画一个200*18,没有边框的矩形,填充颜色为#FFF3CC; 透明度为50, x,y值为0,

回到主场景,新建一个影片剪辑.命名为:columnItem,
在高级选项那 标识符为:columnItem,在勾选上 '为ActionScript导出','第一帧导出'.
新建三个图层,分别命名为:
--------------------------------------------------
btn
text
line
--------------------------------------------------
在图层line的第一帧画一条100*1的虚线.填充颜色为#660000; 透明度为80 ; x值为0,y值为18;
在图层text画一个动态文本框,大小为200*18; 文本颜色为:#660000; x,y值为0, 实例名为: cName ;
在图层btn中,将btn按钮元件拉到第一帧.x,y值为0,实例名为: btn ;
完成如图:

回到主场景.
打开组件面板,拉一个Accordion组件到库中;
在Actions图层的第一帧输入下面的代码:

//导入类.
import mx.core.View;
import mx.containers.Accordion;
//===========================================
//使用系统编码.防止乱码.
System.useCodepage = true;
//隐藏按钮的鼠标手形.
Button.prototype.useHandCursor = false;
//===========================================
//实例化一个xml对象.
var columnData:XML = new XML();
//分析时忽略xml文档中的空格.
columnData.ignoreWhite = true;
//加载http://localhost/xml/xml-008.asp.
columnData.load("http://localhost/xml/xml-008.asp?ran="+Math.random(9999));
//调用XML.onLoad事件.
columnData.onLoad = function(success:Boolean)
{
    //如果加载成功,success=true;否则success=false;
    if (success) {
        //执行dragColumn函数.
        dragColumn(columnData.firstChild.childNodes);
    }
};
//==========dragColumn函数用来绘制专栏数据===========
function dragColumn(column_arr:Array):Void
{
    //创建Accordion组件的实例.
    //createClassObject(类名称,"实例名",深度,{初始对象});
    createClassObject(Accordion, "column", 0, {_x:0, _y:0, _width:200, _height:240});
    //执行columnStyle函数.
    columnStyle();
    //获取数组的长度.
    var columnLen:Number = column_arr.length;
    //专栏的子菜单数组.
    var columnChild:Array;
    //引用专题栏目的对象.
    var MainItem:Object;
    //循环创建专题栏目.
    for (var i = 0; i<columnLen; i++) {
        //创建专题栏目.MainItem引用新创建的对象.
        //createSegment(类名称,值或实例名称,显示的标题);
        MainItem = column.createSegment(View, i, column_arr[i].attributes.name);
        //获取专栏的子菜单数组.
        columnChild = column_arr[i].childNodes;
        //循环创建专题栏目的子菜单.
        for (var j = 0; j<columnChild.length; j++) {
            //使用with语句简写代码.
            //创建专题栏目的子菜单.
            //createChild("库中的链接名","实例名称",{初始对象});
            //18.5是columnItem影片剪辑的高度和行距.
            with (MainItem.createChild("columnItem", "columnItem", {_x:0, _y:18.5*j})) {
                //显示子菜单.
                cName.text = columnChild[j].attributes.name;
                //获取点击的URL;
                btn.cURL = columnChild[j].attributes.url;
                //btn.onRelease事件.
                btn.onRelease = btnEvent;
            }
        }
    }
}
//========执行btn.onRelease事件的函数=========
function btnEvent():Void
{
    //连接点击的URL.
    getURL(this.cURL, "_blank");
}
//=======columnStyle函数设置专栏的样式=========
function columnStyle():Void
{
    //文本颜色.
    column.setStyle("color", 0x660000);
    //字体.
    column.setStyle("fontFamily", "隶书");
    //主题.
    column.setStyle("themeColor", "haloOrange");
    //点击专栏的动画.
    column.setStyle("openEasing", mx.transitions.easing.Bounce.easeOut);
}

上一页  [1] [2] [3] [4] [5] [6]  下一页

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

当前在线人数
QQ:748838 MSN:allen_xia#msn.com E-mail:allenxia666#126.com QQ群:站长联盟北方区-北京(28200145) 站长联盟南方区-上海(67713522)