当前位置:编程学习 > C#/ASP.NET >>

PhotoFilter的速度控制不了?

这个是我的关于图片处理的js(新公司给我做的,之前别人写完了的),要我调整一下图片切换的速度。但是这个里面的speed没法调速度啊。我用PhotoFilter.Speed(5000),速度还是没有变呢。我不知道原因是在哪里。
function PhotoFilter(){
this.StartPos = 0;
this.CurrPos = 0;
this._ImgSrcList = null;
this._TimeList = null;
this._TitleList = null;
this._HrefList = null;
this._ObjAdContainer = null;
this._ObjText = null;
this._Speed = 5000;
this.ObjName = null;
this.Width = 0;
this.Height = 0;
this.AdFrame = null;

this.ArrImg = new Array();
this.ArrTime = new Array();
this.ArrTitle = new Array();
this.ArrLink = new Array();

this.theTimer = null;

this.arrAdFilter  = null;

this.ImgSrcList = function(strImgSrcList){
this._ImgSrcList = strImgSrcList;
}


this.Init = function(){
var ObjTab = document.createElement("table");
ObjTab.id = 'tabPhotoFilterMain';
ObjTab.cellSpacing = 1;
ObjTab.cellPadding = 1;
ObjTab.border = 0;
ObjTab.height = 18;
ObjTab.bgColor = '#ffffff';
ObjTab.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=100)';
ObjTab.style.position = 'absolute';
document.body.appendChild(ObjTab);
var ObjRow = ObjTab.insertRow(0);

for(var i=0; i<this.arrAdFilter.length; i++){
this.ArrImg[i] = this.arrAdFilter[i][0];
this.ArrTitle[i] = this.arrAdFilter[i][1];
this.ArrTime[i] = this.arrAdFilter[i][2];
this.ArrLink[i] = this.arrAdFilter[i][3];
}

for (var i=0; i<this.ArrImg.length; i++){
var ObjCell = ObjRow.insertCell(i);
ObjCell.id = 'tdPhotoFilter_' + (i+1);
ObjCell.width = 18;
ObjCell.align = 'center';
ObjCell.valign = 'middle';
ObjCell.bgColor = '#999999';
//ObjCell.fontColor = '#FFFFFF';
ObjCell.style.cursor = 'hand';
ObjCell.style.fontFamily = 'Arial';
ObjCell.attachEvent('onclick', ClickPhotoTd);
ObjCell.innerHTML = '<span style="font-size:7pt; color:#FFFFFF">' + (i+1) + '</span>';

}

var strHTML = '<table width=\'100%\' border=\'0\' cellspacing=\'0\' cellpadding=\'0\'><tr><td align=\'center\'>';
strHTML += '  <A id="FlashAdHref" name="FlashAdHref" Href=\'javascript:void(0);\' target=\'_blank\'><img border="0" id=\'imgPhotoFilter\' name=\'imgPhotoFilter\' src=\'\' style="FILTER: revealTrans(duration=2,transition=20)" width="' + this.Width + '" height="' + this.Height + '" style="display:none" />';
    strHTML += '</td></tr></table>';
    strHTML += '<object id=\'swfPhotoFilter\' name=\'swfPhotoFilter\' style="display:none" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="' + this.Width + '" height="' + this.Height + '">';
    strHTML += '<param name="movie" value="image/swf/pixviewer.swf">';
    strHTML += '<param name="quality" value="high">';
    strHTML += '<param name="wmode" value="transparent">';
    strHTML += '<embed src="image/swf/pixviewer.swf" quality="high" pluginspage="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + this.Width + '" height="' + this.Height + '"></embed></object>';
    strHTML += '</A>';
    this._ObjAdContainer.innerHTML = strHTML;
this.SetNagivatePos();
var len = this.ArrImg.length;
if (len > 1){
this.StartPos = parseInt(len * Math.random());
}
}

this.CreateImg = function(Doc, intId, strSrc){
var ObjDiv = Doc.createElement('div');
ObjDiv.id = 'FlashAdContainer_' + intId;
var objImg = Doc.createElement("img");
objImg.id = 'FlashAd_' + intId;
objImg.src = strSrc;
objImg.style.filter = 'revealTrans(duration=2,transition=' + Math.floor(Math.random()*28) + ')';

ObjDiv.appendChild(objImg);
return ObjDiv;
}

this.CreateFlash = function(Doc, intId, strSrc){
var ObjDiv = Doc.createElement('div');
ObjDiv.id = 'FlashAdContainer_' + intId;
var objImg = Doc.createElement("div");
objImg.id = 'FlashAd_' + intId;
strFlash = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="' + this.Width + '" height="' + this.Height + '">';
strFlash += '<param name="movie" value="' + strSrc + '">';
strFlash += '<param name="quality" value="high">';
strFlash += '<param name="wmode" value="transparent">';
strFlash += '<embed src="' + strSrc + '" quality="high" pluginspage="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + this.Width + '" height="' + this.Height + '"></embed></object>';
objImg.innerHTML = strFlash;
ObjDiv.appendChild(objImg);
return ObjDiv;
}

this.TimeList = function(strTimeList){
this._TimeList = strTimeList;
}

this.TitleList = function(strTitleList){
this._TitleList = strTitleList;
}

this.HrefList = function(strHrefList){
this._HrefList = strHrefList;
}

this.ObjAdContainer = function(TheAdContaner){
this._ObjAdContainer = TheAdContaner;
}

this.SetNagivatePos = function(){
var ObjClient = GetClientRect(this._ObjAdContainer);
var ObjTab = document.all.tabPhotoFilterMain;
ObjTab.style.top = ObjClient.Top+ObjClient.Height-ObjTab.height;
//ObjTab.style.left = ObjClient.Left+ObjClient.Width-ObjTab.clientWidth+1;
ObjTab.style.left = ObjClient.Left+ObjClient.Width-ObjTab.clientWidth;
ObjTab.style.zIndex = 100;
}

this.ObjText = function(TheText){
this._ObjText = TheText;
}

this.Speed = function(intSpeed){
this._Speed = parseInt(intSpeed);
}

this.SetFilter = function(Obj){
if (Obj.tagName.toLowerCase() == 'img'){
Obj.filters.revealTrans.Transition = Math.floor(Math.random()*28);
Obj.filters.revealTrans.apply();
}
}

this.PlayFilter = function(Obj){
if (Obj.tagName.toLowerCase() == 'img'){
Obj.filters.revealTrans.play();
}
}

this.NextPhoto = function(){
this.ProcessFilter();
if(this.CurrPos < this.ArrImg.length-1){
this.CurrPos++;
}
else {
this.CurrPos = 0;
}
}

this.ProcessFilter = function(){
var intNP = this.CurrPos + this.StartPos;
if (intNP >= this.ArrImg.length){
intNP = intNP - this.ArrImg.length;
}

for (var i=0; i<this.ArrImg.length; i++){
var tdObj = eval('document.all.tdPhotoFilter_' + (i+1));
tdObj.bgColor = '#000000';
}
var tdObj = eval('document.all.tdPhotoFilter_' + (this.CurrPos+1));
tdObj.bgColor = '#0066CC';


var ObjFileName = new CFileName(this.ArrImg[intNP]);
var ObjAdSwf = document.all.swfPhotoFilter;
var ObjAdImg = document.all.imgPhotoFilter;
if (ObjFileName.Extend == 'swf'){
ObjAdSwf.movie = this.ArrImg[intNP];
ObjAdImg.style.display = 'none';
ObjAdSwf.style.display = '';
} else {
this.SetFilter(ObjAdImg);
ObjAdImg.src = this.ArrImg[intNP];
ObjAdSwf.style.display = 'none';
ObjAdImg.style.display = '';
this.PlayFilter(ObjAdImg);
}
this._ObjText.innerHTML = '<A Href="' + this.ArrLink[intNP] + '" Target="_blank">' + this.ArrTitle[intNP] + '</A>';
document.all.FlashAdHref.href = this.ArrLink[intNP];
this.theTimer = setTimeout(this.ObjName + '.NextPhoto()', this.ArrTime[intNP]);
}

this.GoToTarget = function(intPos, Obj){
if (this.theTimer){
clearTimeout(this.theTimer);
}
var ObjTheAd = this._ObjAdContainer.firstChild;
if (ObjTheAd.tagName){
if (ObjTheAd.tagName.toLowerCase() == 'img'){
ObjTheAd.filters.revealTrans.stop();
}
}
this.CurrPos = parseInt(intPos)-1;
this.NextPhoto();
}
}

function CFileName(strFileName){
var arrPath = strFileName.split('\\');
var strLast = arrPath[arrPath.length - 1];
var arrFile = strLast.split('.');
var strName = '';
for (var i=0; i<arrFile.length - 1; i++)
{
if (i > 0)
{
strName += '.';
}
strName += arrFile[i];
}

var strExt = '';
if (arrFile.length > 1)
{
strExt = arrFile[arrFile.length - 1];
}

return {
FileName: strName,
Extend: strExt
};
}


function GetClientRect(Obj){
var ol;
var ot;
var ow;
var oh;
var strConstEnd = "BODY"

var el = Obj;
ol = 0;
ot = 0;
while(el.tagName.toUpperCase()!="BODY"){
ot += el.offsetTop+el.clientTop;
ol += el.offsetLeft+el.clientLeft;
el=el.offsetParent;
}
ow = parseInt(Obj.offsetWidth);
oh = parseInt(Obj.offsetHeight);
return{
Left: ol,
Top: ot,
Width: ow,
Height: oh
};
}

//重新定位图片新闻的数字单元格(页面变换时需要)
function resetTabt_top()
{
  var ObjClient = GetClientRect(document.all.tdFlashAdContainer);
  var ObjTab = document.all.tabPhotoFilterMain;
ObjTab.style.top = ObjClient.Top+ObjClient.Height-ObjTab.height;
}

Filter ASP.NET 图片滤镜 --------------------编程问答-------------------- 代码不全,我就没看到Speed或者_speed被用过。 --------------------编程问答--------------------
引用 1 楼 devmiao 的回复:
代码不全,我就没看到Speed或者_speed被用过。


 private void Pictures_Bind(XmlDocument tmpXml)
    {
        string strScript = @"var ObjPhotoFilter;
                                    function Document_OnLoad(){
                                    ObjPhotoFilter = new PhotoFilter();
                                    ObjPhotoFilter.Width = 455;
                                    ObjPhotoFilter.Height = 325;
                                    var AdFilter = Array();";

        XmlNodeList newslist = tmpXml.SelectNodes("root/news_title");
        if (newslist.Count == 0)
        {
            //20101220 ll 解决无图片新闻时报缺少对象
            Response.Write("<script>function Document_OnLoad() { }</script>");
            return;
        }

        int index = 0;
        foreach (XmlNode node in newslist)
        {

            string strGuid1 = "New_" + Guid.NewGuid().ToString();
            Session[strGuid1] = node.Attributes["news_titleimage"].Value;

            strScript += "AdFilter[" + index + "]= new Array(\"News/getImage.aspx?id=" + strGuid1 + "\",\"" + node.InnerText + "\",'5000',\"News/NewsContent.aspx?type=5bf8339e-03e4-44ee-be63-ad0e72c555e1&id=" + node.Attributes["news_id"].Value + "\");";
            index++;
        }

        strScript += @"          ObjPhotoFilter.arrAdFilter = AdFilter.sort(function(){return Math.random()>0.5?-1:1;});
                                    ObjPhotoFilter.ObjAdContainer(document.all.tdFlashAdContainer);
                                    ObjPhotoFilter.ObjText(document.all.divPhotoComment);
                                    ObjPhotoFilter.ObjName = 'ObjPhotoFilter';
                                    ObjPhotoFilter.Init();
                                    ObjPhotoFilter.Speed(5000);
                                    ObjPhotoFilter.NextPhoto();
                                    window.onresize = function(){
                                    ObjPhotoFilter.SetNagivatePos();}}
                                    function ClickPhotoTd(){
                                    var ObjSrc = window.event.srcElement;
                                    ObjPhotoFilter.GoToTarget(ObjSrc.innerText, ObjSrc)}";

        Response.Write("<script>" + strScript + "</script>");
    }
--------------------编程问答-------------------- _speed被赋值了,但是没有被使用过。
影响图片切换速度的应该是下面这句。

this.theTimer = setTimeout(this.ObjName + '.NextPhoto()', this.ArrTime[intNP]);


this.ArrTime[intNP]是间隔时间。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,