数据库到这可以了.下面是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); }
现在大家就可以测试影片了.
教程源文件: flash-xml-asp-jsp.rar
出处:蓝色理想
责任编辑:moby
上一页 Flash处理外部XML文档数据 [6] 下一页 Flash处理外部XML文档数据 [8]
◎进入论坛Flash专栏版块参加讨论
|