PS设计教程网欢迎你!

Flash+ASP+XML+Access开发留言本(2)

文章来源于 动画设计与制作208例,感谢作者 望月狼 给我们带来经精彩的文章!
设计教程/设计教程/Flash教程2009-10-22
(9)使用IE浏览listXML.asp,这个XML文件的结构比较简单,每条留言记录都是一个XML节点名为item,使用节点属性来存放数据,XML结构可以更为简洁,如图14-4所示。 图14-3 listXML.asp (10)打开Flash先制作一个用于显

(9)使用IE浏览“listXML.asp”,这个XML文件的结构比较简单,每条留言记录都是一个XML节点名为“item”,使用节点属性来存放数据,XML结构可以更为简洁,如图14-4所示。

 

Flash+ASP+XML+Access开发留言本

图14-3 listXML.asp

(10)打开Flash先制作一个用于显示留言列表的“显示条”,画个矩形背景再创建两个文本框名为“title”和“date”用来显示标题和日期,如图14-5所示。

 

Flash+ASP+XML+Access开发留言本

图14-4 制作“显示条”

(11)将“显示条”转化为影片剪辑名为“item”,类路径为“com.GB4.Item”,如图1- 所示。

Flash+ASP+XML+Access开发留言本

 

图14-5 转化为影片剪辑

(12)编写显示条的AS类文件“Item.as”。

 

AS3代码

package com.GB4{   
    import flash.display.*;   
    import flash.events.*;   
    import flash.events.IOErrorEvent;   
    import flash.system.System;   
    import flash.text.TextField;   
    public class Item extends MovieClip {   
        var id:Number;   
        public function Item() {   
            stop();   
            this.addEventListener(MouseEvent.MOUSE_OVER,overFun);   
            this.addEventListener(MouseEvent.MOUSE_OUT,outFun);   
            this.addEventListener(MouseEvent.CLICK,clickFun);   
        }   
        private function overFun(event:MouseEvent):void {   
            gotoAndStop(2);   
            date.textColor=0x000000;   
            title.textColor=0x000000;   
        }   
        private function outFun(event:MouseEvent):void {   
            gotoAndStop(1);   
            date.textColor=0xffffff;   
            title.textColor=0xffffff;   
        }   
        private function clickFun(event:MouseEvent):void {   
            main.showMsg(id)   
        }   
    }   
}

(13)好了,再编写main文档类,我们先把数据读进去。

 

AS3代码

package com.GB4{   
    import flash.display.*;   
    import flash.events.*;   
    import flash.net.URLLoader;   
    import flash.net.URLRequest;   
    import flash.events.IOErrorEvent;   
    import flash.system.System;   
    import flash.utils.*;//使用MC时引入   
    import flash.text.TextField;   
    import fl.transitions.Tween;   
    import fl.transitions.easing.*;   
    public class main extends Sprite {   
        private var pageNum:Number = 0;   
        private var item:Item;   
        private var itemBox:Sprite;   
        private var controlBar:ControlBar;   
        public static  var showMsg:Function;   
        private var getXML:XML;   
        private var msgBox:MsgBox = new MsgBox;   
        private var writeBox:WriteBox = new WriteBox;   
        private var thenPage:Number=1;   
        private var allPage:Number=0;   
        public function main() {   
            showMsg=showMsgFun;   
            controlBar=new ControlBar;   
            controlBar.x=50;   
            controlBar.y=300;   
            addChild(controlBar);   
            loadPage(1);   
            addChild(msgBox);   
            msgBox.visible=false;   
            msgBox.x=120  
            msgBox.y = 50  
            writeBox.visible=false;   
            writeBox.x=120  
            writeBox.y = 50  
            addChild(writeBox);   
            writeBox.closeBt.addEventListener(MouseEvent.CLICK, hideWriteBox);   
            msgBox.closeBt.addEventListener(MouseEvent.CLICK, hideMsgBox);   
            controlBar.prevPage.addEventListener(MouseEvent.CLICK, prevPageFun);   
            controlBar.nextPage.addEventListener(MouseEvent.CLICK, nextPageFun)   
            controlBar.writeBt.addEventListener(MouseEvent.CLICK,writeFun)   
        }   
        /*加载数据库转化的XML文件*/  
        private function loadPage(_pageNum:Number):void {   
            var myLoader:URLLoader = new URLLoader();   
            System.useCodePage=true;   
            myLoader.addEventListener(Event.COMPLETE,loadComplete);   
            myLoader.addEventListener(IOErrorEvent.IO_ERROR,loadError);   
            myLoader.load(new URLRequest("http://localhost/GB4/listXML.asp?pageNum=" + (_pageNum-1) + "&tag=" + Math.random() * 50));   
            thenPage=_pageNum   
        }   
        /*XML文件获取转化*/  
        private function loadComplete(event:Event):void {   
            XML.ignoreWhitespace = true;   
            var str:String=event.target.data;   
            str=str.slice(0,str.lastIndexOf(">")+1);   
            getXML = new XML(str);   
            allPage =Number(getXML.@total)   
            if (allPage % 10==0) {   
                allPage=int(allPage/10)   
                }else {   
                    allPage=int(allPage/10)+1  
                    }   
            controlBar.showTxt.text="当前第"+thenPage+"页 总共"+allPage+"页"  
            printItem();   
        }

 

技术看板:AS代码解释

第20行,初始化时先读取第1页。

第23行,私有函数loadPage()带有一个参数“_pageNum”控制要加载的页数,加载listXML留言列表文件。

第24行,文件的加载路径,读者可以跟据自己在IIS中设置的路径来修改,最后一个“&tag=”的作用防止读取缓存中的数据,所以多设了个变量“tag”并使用随机值保证每次都从数据库从新加载资料。

第30行,将所加载的页面赋给变量“thenPage”将当前页存放起来在翻动页面时使用。

第37行,加载成功后转化为XML对象“getXML”。

第38~43行,读取数据库所有留言数计算出总共页数,每页为10条记录,如果能被整除则取整为总页数否则取整加一为总页数。

版权所有PS设计教程网公安备案:苏公网安备 32058302001023号工信部备案:沪ICP备09005587号
aaa