FLASH+XML+ASP.Net轮换广告源代码

FLASH+XML+ASP.Net轮换广告源代码

原先找这个在网上找了很久都没人写出来,于是自己弄了一个,并开放完整代码希望大家喜欢哈

 

请修改xml\SlideData.aspx.cs


TBLL.TSlide slidebll = new TBLL.TSlide();
DataSet ds =  slidebll.GetAllList();


为你自己的数据源链接,表的格式为
CREATE TABLE [dbo].[TSlide] (
 [id] [int] IDENTITY (1, 1) NOT NULL ,
 [LinkUrl] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
 [ImgUrl] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
 [Title] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

 

ContractedBlock.gif ExpandedBlockStart.gif AS
import mx.utils.Delegate
import mx.transitions. *
import mx.transitions.easing. *
import include.DepthSet
//
stop ()
//
//
//声明变量
var container : MovieClip //装载显示图片的MC
//
var controlBG : MovieClip //底部控制条的背景
var controlBGWidth : Number = Stage.width //底部控制条背景的宽度
var controlBGHeight : Number = 20 //底部控制条背景的高度
var controlBGX : Number = 0 //底部控制条背景的X坐标
var controlBGY : Number = Stage.height - controlBGHeight //底部控制条背景的Y坐标
//
var controlMenu : MovieClip //底部控制按钮
var controlBtnWidth : Number = 20 //按钮宽度
var controlBtnHeight : Number = 20 //按钮高度
//
var showProgress : TextField //显示加载进度
//
var allBytesLoaded : Number = 0 //总体下载字节数
var allBytesTotal : Number = 0 //总体字节数
//
var titleText : TextField //图片标题
//
var itemTotal : Number //图片总数  XML节点长度是从1开始
//
var xmlArray : Array = [] //保存载入的XML, 方便调用
//
var intervalTime : Number //每张图片显示的间隔时间
var intervalID : Number //存储间隔计时的ID
//
var isRandom : Boolean //标识是否随机显示图片
//
var curShowID : Number = 0 //当前显示的图片的索引
//
//
//载入XML配置文件
var xmlObj : XML = new XML ()
xmlObj.ignoreWhite = true
//判断是否从页面传来xml路径参数
if ((xmlPath == undefined) || (xmlPath == ""))
{
    xmlObj.load ("xml/SlideData.aspx")
}
else
{
    xmlObj.load (xmlPath)
}
xmlObj.onLoad = Delegate.create (this, init)
//
//
//绘制矩形函数
function drawBox (mc : MovieClip, x : Number, y : Number, w : Number, h : Number, bgColor : Number, bgAlpha : Number) : Void
{
    mcName.lineStyle (0, 0xE6E6E6, 100, true, "none")
    mc.beginFill (bgColor, bgAlpha)
    mc.moveTo (x, y)
    mc.lineTo (x + w, y)
    mc.lineTo (x + w, y + h)
    mc.lineTo (x, y + h)
    mc.lineTo (x, y)
    mc.endFill ()
}
//
//初始化
function init (isLoadXMLSuccess : Boolean) : Boolean
{
    //判断XML加载是否成功
    if ( ! isLoadXMLSuccess)
    {
        return false
    }
    //
    //
    itemTotal = xmlObj.firstChild.childNodes.length
    intervalTime = xmlObj.firstChild.attributes ["interval"]
    isRandom = Boolean (Number (xmlObj.firstChild.attributes ["isRandom"]))
    //
    //把XML数据保存到数组中
    for (var i = 0; i 
< itemTotal; i ++)
    {
        xmlArray [i] 
= {
            
title : "", img : "", url : "", target : "", bytesLoaded : 0, bytesTotal : 0, loadComplete : false, btnMC : null, showMC : null
        }
        xmlArray [i].title 
= xmlObj.firstChild.childNodes [i].attributes ["title"]
        xmlArray [i].img 
= xmlObj.firstChild.childNodes [i].attributes ["img"]
        xmlArray [i].url 
= xmlObj.firstChild.childNodes [i].attributes ["url"]
        xmlArray [i].target 
= xmlObj.firstChild.childNodes [i].attributes ["target"]
    }
    //
    //创建一个容器MC
    container 
= this.createEmptyMovieClip ("Container", this.getNextHighestDepth ())
    container._visible 
= false //等全部图片载入完毕后再显示
    //
    //创建文本框显示loading进度
    showProgress 
= this.createTextField ("ShowProgress", this.getNextHighestDepth () , 0, 0, 0, 0)
    showProgress.textColor 
= 0x000000
    
showProgress.selectable = false //不可选
    showProgress.autoSize 
= true
    
showProgress.text = "开始载入"
    showProgress._x 
= Stage.width / 2 - showProgress.textWidth / 2 //居中
    showProgress._y 
= Stage.height / 2 - showProgress.textHeight / 2
    //
    //判断是否随机显示
    if (isRandom)
    {
        xmlArray 
= randomOrder (xmlArray) //把该数组随机排序
    }
    //
    //循环载入所有图片
    for (var i 
= 0; i < itemTotal; i ++)
    {
        loader (i, xmlArray [i].img)
    }
}
//
//控制加载情况
function loader (indexID : Number, path : String) : Void
{
    var loadListener : Object 
= new Object ()
    //
    loadListener.onLoadStart 
= function (target_mc : MovieClip)
    {
    }
    loadListener.onLoadProgress 
= function (target_mc : MovieClip, bytesLoaded : Number, bytesTotal : Number) : Void
    {
        //把该图片下载进度存到数组中
        xmlArray [indexID].bytesLoaded 
= bytesLoaded
        
xmlArray [indexID].bytesTotal = bytesTotal
        
//
        //统计全部图片下载进度
        allBytesLoaded 
= 0
        
allBytesTotal = 0
        
for (var i in xmlArray)
        {
            allBytesLoaded +
= xmlArray [i].bytesLoaded
            allBytesTotal +
= xmlArray [i].bytesTotal
        }
        //
        showProgress.text 
= Math.round (allBytesLoaded / 1024) + "/" + Math.round (allBytesTotal / 1024) + "KB"
        showProgress._x 
= Stage.width / 2 - showProgress.textWidth / 2 //居中
        showProgress._y 
= Stage.height / 2 - showProgress.textHeight / 2
    }
    loadListener.onLoadComplete 
= function (target_mc : MovieClip, httpStatus : Number) : Void
    {
    }
    loadListener.onLoadInit 
= function (target_mc : MovieClip) : Void
    {
        target_mc.indexID 
= indexID
        
xmlArray [indexID].showMC = target_mc
        
xmlArray [indexID].loadComplete = true //标识该图片载入完毕
        //
        //判断需不需要为图片加单击事件
        if (xmlArray [indexID].url !
= "#")
        {
            target_mc.onRelease 
= function ()
            {
                getURL (xmlArray [indexID].url, xmlArray [indexID].target)
            }
        }
        else
        {
            target_mc.onRelease 
= null
            
target_mc.useHandCursor = false
        
}
        //
        //调整图片的层深关系
        DepthSet.setTop ("viewer", xmlArray [indexID].showMC)
        //
        //遍历数组, 检查是否已经全部图片加载完毕
        var loadCompleteTotal : Number 
= 0
        
for (var i in xmlArray)
        {
            if (xmlArray [i].loadComplete)
            {
                loadCompleteTotal +
= 1
            
}
        }
        //如果全部加载完毕
        if (loadCompleteTotal 
== itemTotal)
        {
            removeMovieClip (showProgress)
            formation ()
        }
    }
    loadListener.onLoadError 
= function (target_mc : MovieClip, errorCode : String, httpStatus : Number)
    {
        showProgress.text 
= "载入图片发生错误" + errorCode
        showProgress._x 
= Stage.width / 2 - showProgress.textWidth / 2 //居中
        showProgress._y 
= Stage.height / 2 - showProgress.textHeight / 2
    }
    //
    var mcLoader : MovieClipLoader 
= new MovieClipLoader ()
    mcLoader.addListener (loadListener)
    var mc : MovieClip 
= container.createEmptyMovieClip ("Img" + indexID, container.getNextHighestDepth ())
    mc._lockroot 
= true //设置该MC的_root为自身
    mcLoader.loadClip (path, mc)
}
//
//随机改变数组的排序
function randomOrder (targetArray : Array) : Array
{
    var arrayLength : Number 
= targetArray.length
    
//
    //先创建一个正常顺序的数组
    var tempArray1 : Array 
= []
    
for (var i = 0; i < arrayLength; i ++)
    {
        tempArray1 [i] 
= i
    
}
    //
    //再根据上一个数组创建一个随机乱序的数组
    var tempArray2 : Array 
= []
    
for (var i = 0; i < arrayLength; i ++)
    {
        tempArray2 [i] 
= tempArray1.splice (Math.floor (Math.random () * tempArray1.length) , 1) //从正常顺序数组中随机抽出元素
        
    }
    //
    //最后创建一个临时数组存储 根据上一个乱序的数组从targetArray中取得数据
    var tempArray3 : Array 
= []
    
for (var i = 0; i < arrayLength; i ++)
    {
        tempArray3 [i] 
= targetArray [tempArray2 [i]]
    }
    //
    //返回最后得出的数组
    return tempArray3
}
//
//创建所有元件
function formation () : Void
{
    //创建一个空MC作为底部控制条的背景
    controlBG 
= this.createEmptyMovieClip ("ControlBG", this.getNextHighestDepth ())
    controlBG._x 
= controlBGX
    
controlBG._y = controlBGY
    
drawBox (controlBG, 0, 0, controlBGWidth, controlBGHeight, 0x000000, 40)
    //
    //创建导航按钮
    controlMenu 
= this.createEmptyMovieClip ("ControlMenu", this.getNextHighestDepth ())
    for (var i 
= 0; i < itemTotal; i ++)
    {
        //创建按钮
        var btn : MovieClip 
= controlMenu.createEmptyMovieClip ("Btn" + i, controlMenu.getNextHighestDepth ())
        btn.indexID 
= i
        
xmlArray [i].btnMC = btn
        
btn.createEmptyMovieClip ("Bg", btn.getNextHighestDepth ())
        drawBox (btn ["Bg"] , 0, 0, controlBtnWidth, controlBtnHeight, 0x000000, 30)
        btn.onRollOver 
= function ()
        {
            this ["Bg"].clear ()
            drawBox (this ["Bg"] , 0, 0, controlBtnWidth, controlBtnHeight, 0xFF6600, 100)
        }
        btn.onRollOut 
= function ()
        {
            //如果当前显示的不是自己
            if (curShowID !
= this.indexID)
            
{
                this ["Bg"].clear ()
                drawBox (this ["Bg"] , 0, 0, controlBtnWidth, controlBtnHeight, 0x000000, 30)
            }
        }
        btn.onRelease 
= function ()
        {
            //如果当前显示的不是自己
            if (curShowID !
= this.indexID)
            
{
                clearInterval(intervalID)
                show (this.indexID)
                showInterval () //开始定时
            }
        }
        //
        //创建按钮上的数字
        var num : TextField 
= btn.createTextField ("Num", btn.getNextHighestDepth () , 0, 2, controlBtnWidth, controlBtnHeight)
        num.textColor 
= 0xFFFFFF
        
num.selectable = false //不可选
        num.text 
= i + 1
        //设置字体格式
        var myformat : TextFormat 
= new TextFormat ()
        myformat.font 
= "Verdana"
        myformat.align 
= "center"
        myformat.size 
= 10
        
num.setTextFormat (myformat)
        //
        //排列按钮位置
        if (i 
== 0)
        {
            btn._x 
= 0
            
btn._y = 0
        

        else
        {
            btn._x 
= pervBtn._x + pervBtn._width
        }
        //
        var pervBtn : MovieClip 
= btn //保存上一个排列的按钮
        
    }
    //设置导航条位置
    controlMenu._x 
= controlBG._width - controlMenu._width
    controlMenu._y 
= controlBG._y
    
//
    //
    //创建标题文本
    titleText 
= this.createTextField ("Title", this.getNextHighestDepth () , controlBG._x, controlBG._y, controlMenu._x, controlMenu._height)
    titleText.textColor 
= 0xFFFFFF
    
titleText.selectable = false //不可选
    titleText.text 
= ""
    //
    //
    show (curShowID) //显示第一张图片
    container._visible 
= true
    
showInterval () //开始定时
}
//
//显示
function show (indexID : Number) : Void
{
    DepthSet.setTop ("viewer", xmlArray [indexID].showMC)
    //
    showEffect (indexID) //显示图片过渡效果
    titleEffect (xmlArray [indexID].title) //标题文字切换效果
    //
    xmlArray [indexID].btnMC.onRollOver ()
    curShowID 
= indexID
    
//
    var arrayLength : Number 
= xmlArray.length
    
for (var i = 0; i < arrayLength; i ++)
    {
        if (indexID !
= i)
        
{
            xmlArray [i].btnMC.onRollOut ()
        }
    }
}
//
//显示
function showInterval () : Void
{
    //定时
    intervalID 
= setInterval (function ()
    {
        curShowID +
= 1
        
if (curShowID >= itemTotal)
        {
            curShowID = 0
        }
        //
        show (curShowID)
    }, intervalTime)
}
//
//标题过渡效果
function titleEffect (content : String) : Void
{
    var myTween : Tween = new Tween (titleText, "_y", mx.transitions.easing.Strong.easeIn, titleText._y, (controlBG._y + controlBG._height), 0.3, true)
    myTween.onMotionFinished = Delegate.create (this, function ()
    {
        titleText.text = content
        var myformat : TextFormat = new TextFormat ()
        myformat.font = "Verdana"
        titleText.setTextFormat (myformat)
        new Tween (titleText, "_y", mx.transitions.easing.Strong.easeOut, (controlBG._y + controlBG._height), controlBG._y, 0.5, true)
    })
}
//
//图片过渡效果
function showEffect (indexID : Number) : Void
{
    var randomNum : Number = Math.floor (Math.random () * 7)
    //
    switch (randomNum)
    {
        case 0 :
        TransitionManager.start (xmlArray [indexID].showMC,
        {
            type : Blinds, direction : Transition.IN, duration : 0.5, easing : None.easeNone, numStrips : 10, dimension : 0
        })
        break;
        case 1 :
        TransitionManager.start (xmlArray [indexID].showMC,
        {
            type : Fade, direction : Transition.IN, duration : 0.5, easing : None.easeNone
        })
        break;
        case 2 :
        TransitionManager.start (xmlArray [indexID].showMC,
        {
            type : Iris, direction : Transition.IN, duration : 0.5, easing : Strong.easeOut, startPoint : 5, shape : Iris.CIRCLE
        })
        break;
        case 3 :
        TransitionManager.start (xmlArray [indexID].showMC,
        {
            type : Photo, direction : Transition.IN, duration : 0.5, easing : None.easeNone
        })
        break;
        case 4 :
        TransitionManager.start (xmlArray [indexID].showMC,
        {
            type : PixelDissolve, direction : Transition.IN, duration : 0.5, easing : None.easeNone, xSections : 10, ySections : 10
        })
        break;
        case 5 :
        TransitionManager.start (xmlArray [indexID].showMC,
        {
            type : Wipe, direction : Transition.IN, duration : 0.5, easing : None.easeNone, startPoint : 1
        });
        break;
        default :
        TransitionManager.start (xmlArray [indexID].showMC,
        {
            type : Fade, direction : Transition.IN, duration : 0.5, easing : None.easeNone
        })
        break;
    }
}

 

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;

public partial class xml_SilderData : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        TBLL.TSlide slidebll 
= new TBLL.TSlide(); 
        DataSet ds 
=  slidebll.GetAllList();//请修改这里为您自己的数据层

        XmlDataDocument xdd 
= SetItemsCountAttribute( ds);
        Response.Clear();
        xdd.Save(Response.OutputStream);
        Response.End();
    }
    
private XmlDataDocument SetItemsCountAttribute(DataSet ds)
    {
        
try
        {
            XmlDataDocument xmlDoc;
            
int ItemCount = 0;

            ds.EnforceConstraints 
= false;
            xmlDoc 
= new XmlDataDocument();

            XmlNode xmlDocNode 
= xmlDoc.CreateXmlDeclaration("1.0""UTF-8"null);
            xmlDoc.AppendChild(xmlDocNode);

            XmlNode viewer 
= xmlDoc.CreateElement("viewer");
            XmlAttribute interval 
= xmlDoc.CreateAttribute("interval");
            interval.Value 
= "4000";
            viewer.Attributes.Append(interval);
            XmlAttribute isRandom 
= xmlDoc.CreateAttribute("isRandom");
            isRandom.Value 
= "1";
            viewer.Attributes.Append(isRandom);
            xmlDoc.AppendChild(viewer);

            
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                XmlNode item 
= xmlDoc.CreateElement("item");
                XmlAttribute title 
= xmlDoc.CreateAttribute("title");
                title.Value 
= ds.Tables[0].Rows[i]["Title"].ToString();
                item.Attributes.Append(title);
                XmlAttribute img 
= xmlDoc.CreateAttribute("img");
                img.Value 
= ds.Tables[0].Rows[i]["ImgUrl"].ToString();
                item.Attributes.Append(img);
                XmlAttribute url 
= xmlDoc.CreateAttribute("url");
                url.Value 
= ds.Tables[0].Rows[i]["LinkUrl"].ToString();
                item.Attributes.Append(url);
                XmlAttribute target 
= xmlDoc.CreateAttribute("target");
                target.Value 
= "_blank";
                item.Attributes.Append(target);
                viewer.AppendChild(item);
            }

            
return xmlDoc;
        }
        
catch (Exception e)
        {
            
string strMsg = e.Message;
            
return null;
        }
    }

}

 

xunyuetian 水乐天 QQ:45268175

 

下载地址:

http://download.csdn.net/source/577984

转载于:https://www.cnblogs.com/xunyuetian/archive/2008/08/19/1271207.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能: 1.网站首页模板使用双样式[顶部菜单模式,左侧活动菜单模式],用户可在后台只有选择模板样式; 2.网站主模块采用静态XML文件,从而提高了加载速度。XML有后台智能生成,维护简单方便; 3.网站风格自定义功能,前台所有可视项均可在后台设置。用户可以在不使用Flash软件的情况下,轻松的制作出属于自己的风格网站; 4.加入CSS样式显示,网站内容文本采用CSS样式定义显示,用户可轻松的设置文本字体显示方式; 5.说明性文本加入滚动条,字数超过显示区域也可以显示。 6.留言模块提交项目可在后台自由设置,留言模块提交项目由原来的固定三项.改为可以自由设置的四项。 ***************************************************************** 运行主机要求: 基本要求:支持无组件上传、ADODB.Stream; 如需自动生成缩略图需安装:CreatePreviewImage.cGvbox、 Persits.Jpeg、 SoftArtisans.ImageGen 中的任意一个组件; 如需在线发生邮件需支持:WIN 虚拟 SMTP、 JMail、 ASPEmail 中的任意一个组件。 ***************************************************************** 文件说明: 1. 数据库文件:data/data.asp (如需编辑数据库请将后缀名改成.mdb。你可以修改数据库文件名;同时需修改数据库连接。) 2. 数据库连接:inc/mdb.asp(如修改了数据库名,请修改本文件数据库路径。) 3.后台路径:/admin/ 4.后台用户名:admin 后台密码:admin (登陆后台后在 >> 个人信息 >> 修改密码 处修改.) ***************************************************************** 为了您更安全的使用本系统请将后台目录(admin)重命名: 如:将admin文件夹重命名为:pppp 后台访问网址为:http://你的域名/pppp/ 这样既可隐藏你的网站后台。 qq22765489 专业为你服务~~你看中,我破解! 今天您看中了么? :)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值