一个自动动态播放图片的类(downmoon)
一个自动动态播放图片的类(downmoon) 第一步:创建一个类clsTurnPicture
增加方法如下:
/// <summary>
/// 播放图片类(downmoon)
/// </summary>
/// <param name='arrImgName'>arrImgName</param>
/// <param name='arrDesc'>arrDesc</param>
/// <param name='strShopName'>strShopName</param>
/// <param name='strBrandName'>strBrandName</param>
/// <param name='strResoourceCode'>strResoourceCode</param>
/// <param name='ScrWidth'>ScrWidth</param>
/// <param name='ScrHeight'>ScrHeight</param>
/// <param name='PicWidth'>PicWidth</param>
/// <param name='PicHeight'>PicHeight</param>
/// <param name='TextHeight'>TextHeight</param>
/// <param name='ToolBarHeight'>ToolBarHeight</param>
/// <param name='FontSize'>默认为16,px</param>
/// <returns></returns>
public string getPicsForHtml(ArrayList arrImgName,ArrayList arrDesc,string strShopName,string strBrandName,string strResoourceCode,int ScrWidth,int ScrHeight,int PicWidth,int PicHeight,int TextHeight,int ToolBarHeight,int FontSize)
{
StringBuilder sb = new StringBuilder();
string strHtml='';
if(arrImgName==null) return '' ;
ArrayList ar1=new ArrayList(arrImgName);
ArrayList ar2=new ArrayList(arrDesc);
int len=ar1.Count;
int len2=ar1.Count-1;
int len3=ToolBarHeight-2;
string str1='';
string str2='';
//strHtm+=@' <html><head><title>Buynow{0}-{1}-{2}图片信息</title>
strHtml=@'<!DOCTYPE HTML PUBLIC ''-//W3C//DTD HTML 4.0 Transitional//EN'' ><HTML><HEAD><title>'+ strShopName+'-'+strBrandName+'-'+'席位:'+strResoourceCode+ '-外观展示图'+
@'</title>
<meta http-equiv=''content-type'' content=''text/html; charset=gb2312''>
<meta name=''GENERATOR'' Content=''Microsoft Visual Studio .NET 7.1''>
<meta name=''CODE_LANGUAGE'' Content=''C#''>
<meta name=''vs_defaultClientScript'' content=''JavaScript''>
<meta name=''vs_targetSchema'' content=''http://schemas.microsoft.com/intellisense/ie5''> '+System.Environment.NewLine;
sb.Append(strHtml);
sb.Append('<script language=JavaScript>'+'\r\n');
sb.Append('<!-- Begin'+System.Environment.NewLine);
sb.Append('var interval = 6; // delay between rotating images (in seconds)'+System.Environment.NewLine);
sb.Append('interval *= 1000;'+System.Environment.NewLine);
sb.Append('var flagtime=0;'+System.Environment.NewLine);
sb.Append('var image_index = -1;'+System.Environment.NewLine);
sb.Append('image_list = new Array();'+System.Environment.NewLine);
sb.Append('note_list = new noteArray('+len2.ToString()+')'+System.Environment.NewLine);
sb.Append('var number_of_image = image_list.length;'+System.Environment.NewLine);
sb.Append('var timesnum=0; '+System.Environment.NewLine);
//strHtml=string.Format(strHtml,len.ToString());
string strTemp='';
for(int k=0;k<ar1.Count;k++)
{
strTemp=ar1[k].ToString();
//strHtm+=' image_list[k] = new imageItem(\'+strTemp+\')';
str1+=' image_list['+k.ToString()+'] = new imageItem(\''+strTemp+'\')'+';\r\n';
}
sb.Append(''+System.Environment.NewLine);
for(int k=0;k<ar2.Count;k++)
{
strTemp=strShopName+'-'+strBrandName+'-'+strResoourceCode+'-'+ar2[k].ToString();
str2+=' note_list['+k.ToString()+'] = \''+strTemp+'\''+';\r\n';
}
sb.Append(str1);
sb.Append(str2);
sb.Append('function noteArray(size)'+System.Environment.NewLine);
sb.Append('{'+System.Environment.NewLine);
sb.Append('this.length=size;'+System.Environment.NewLine);
sb.Append('for(i=1;i<=size;i++)'+System.Environment.NewLine);
sb.Append('{'+System.Environment.NewLine);
sb.Append(@'this[i]='''''+System.Environment.NewLine);
sb.Append(' }'+System.Environment.NewLine);
sb.Append('return this;'+System.Environment.NewLine);
sb.Append('}'+System.Environment.NewLine);
sb.Append('function counternum()'+System.Environment.NewLine);
sb.Append('{'+System.Environment.NewLine);
sb.Append('if( timesnum < '+len2.ToString()+')'+System.Environment.NewLine);
sb.Append('{'+System.Environment.NewLine);
sb.Append(' timesnum++;'+System.Environment.NewLine);
sb.Append(@'//document.all.slide_ent.src=''about:blank'';');
sb.Append(System.Environment.NewLine);
sb.Append(@'//document.all.slide_ent.src=''about:blank'';');
sb.Append(System.Environment.NewLine);
sb.Append(' }'+System.Environment.NewLine);
sb.Append('}'+System.Environment.NewLine);
sb.Append(@'function run(obj)
{
interval=obj.options[obj.selectedIndex].value*1000;
rotateImage();
}');
sb.Append(@'function stop()
{
interval=0;
}
function previous()
{
var new_image = getPreviousImage();
document[''rImage''].src = new_image;
}
function next()
{
var new_image = getNextImage();
document[''rImage''].src = new_image;
}
function imageItem(image_location)
{
this.image_item = new Image();
this.image_item.src = image_location;
}
function noteItem(note)
{
this.note_item = new Image();
this.note_item.src = note;
}
function get_ImageItemLocation(imageObj)
{
return(imageObj.image_item.src)
}
function get_NoteItemLocation(noteObj)
{
return(noteObj.note_item.src)
}
function generate(x, y)
{
var range = y - x + 1;
return Math.floor(Math.random() * range) + x;
}');
sb.Append(@'function getPreviousImage()
{
image_index = image_index-1;
if (image_index < 0)
{');
sb.Append('image_index=image_index+'+len.ToString()+';');
sb.Append(@'}
var new_image = get_ImageItemLocation(image_list[image_index]);
document.all.span_1.innerText=image_index+1;
document.all.summary.innerText=note_list[image_index];
return(new_image);');
sb.Append(System.Environment.NewLine+'}');
sb.Append(@'function getNextImage()
{
image_index = image_index+1;
');
sb.Append('if (image_index >= '+len.ToString()+')');
sb.Append(System.Environment.NewLine);
sb.Append(@'{');
sb.Append(System.Environment.NewLine);
sb.Append('image_index=image_index-'+len.ToString()+';');
sb.Append(System.Environment.NewLine);
sb.Append('}');
sb.Append(System.Environment.NewLine);
//sb.Append(@'');
sb.Append(@'var new_image = get_ImageItemLocation(image_list[image_index]);
document.all.span_1.innerText=image_index+1;
document.all.summary.innerText=note_list[image_index];
return(new_image);');
sb.Append(System.Environment.NewLine+'}');
strHtml=@'
function rotateImage()
{
if (interval == 0)
{
return 1;
}
if (flagtime == 1)
{
var now = new Date();
var time1 = now.getTime();
var time2;
time1=time1+3000;
time2=now.getTime();
while(time2 < time1)
{
now = new Date();
time2=now.getTime();
}
flagtime=0;
}
var new_image = getNextImage();
document['rImage'].src = new_image;
var recur_call = ''rotateImage('''+'rImage'+''')'';
setTimeout(recur_call,interval);
}
// End -->
</script>
<script type=''text/javascript'' src=''Resource/Script/ygcss.js''></script>
';
sb.Append(strHtml);
strHtml=@'</HEAD><body topmargin=''0'' leftmargin=''0''><form name=''frmDispImage''>';
sb.Append(strHtml);
strHtml=@'
<center>
<center>
<table bgcolor='#fff2df' border='0' cellpadding='0' cellspacing='0' width=''
+ScrWidth.ToString()+@''>
<tbody><tr>
<td align='center' valign='top'><table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tbody><tr>
<td height='1'></td>
</tr>
</tbody></table>
<table border='0' cellpadding='0' cellspacing='0' height=''+
PicHeight.ToString()+'' width=''+PicWidth.ToString()+@'' align='center'>
<tbody><tr>
<td align='center'><img name=''rImage'' src=''+
ar1[0].ToString()+'' width=''+PicWidth+'' height=''+PicHeight+@'' onload=''counternum();'' border='0'></td>
</tr>
</tbody></table>
<!--text-->
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tbody><tr>
<td id=''summary'' align='center' height=''+
TextHeight.ToString()+'' style='font-size:'+FontSize.ToString()+'pt;'>'
+strShopName+'-'+strBrandName+'-'+strResoourceCode+'-'+ar2[0].ToString()+@'</td>
</tr>
</tbody></table>
<!--/text-->
<!--bottom-->
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tbody><tr>
<td><img src="http://doc.readmen.com/10/Resource/Image/TurnImage/slideshow_bg_3.gif" border='0' height='4' width=''+ScrWidth.ToString()+@''></td>
</tr>
<tr>
<td bgcolor='#c9beeb' height=''+ToolBarHeight.ToString()+@''>
<table border='0' cellpadding='1' cellspacing='0' width='100%'>
<tbody><tr>
<td align='center' height=''+len3.ToString()+''><font style='font-size:'+FontSize+'pt;'><span id='span_1'>1</span>/'+len.ToString()+
@'
<img src="http://doc.readmen.com/10/Resource/Image/TurnImage/slideshows_bottom_1.gif" alt='开始' onclick=''run(document.frmDispImage.select1)'' align='absmiddle' border='0' height='21' width='35'> <img src="http://doc.readmen.com/10/Resource/Image/TurnImage/slideshows_bottom_2.gif" alt='停止' onclick=''stop();'' align='absmiddle' border='0' height='21' width='35'>
<img src="http://doc.readmen.com/10/Resource/Image/TurnImage/slideshows_bottom_3.gif" alt='前一张' onclick=''previous();'' align='absmiddle' border='0' height='21' width='35'> <img src="http://doc.readmen.com/10/Resource/Image/TurnImage/slideshows_bottom_4.gif" alt='后一张' onclick=''next();'' align='absmiddle' border='0' height='21' width='35'> 速度:
<select name=''select1'' onchange=''run(this)''>
<option value=''12''>12 sec.</option>
<option selected=''selected'' value=''6''>6 sec.</option>
<option value=''3''>3 sec.</option>
<option value=''9''>9 sec.</option>
</select></font></td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td bgcolor='#625a68' height='1'></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<!--/--></center>
<script language=''javascript''>
flagtime=1;
<!--rotateImage();-->
<!--slideit()-->
</script>
</center>';
sb.Append(strHtml);
sb.Append('</form></body></HTML>');
return sb.ToString();
}
调用格式:
//// ArrayList ar1=new ArrayList();
//// ar1.Clear();
//// ar1.Add('http://downmoon-hgh/RichChartServer/Top30/frmForumDisplayImage.aspx?id=160720060328095407');
//// ar1.Add('http://downmoon-hgh/RichChartServer/Top30/frmForumDisplayImage.aspx?id=160420060327085709');
//// ar1.Add('http://downmoon-hgh/RichChartServer/Top30/frmForumDisplayImage.aspx?id=160420060327091030');
//// ar1.Add('http://downmoon-hgh/RichChartServer/Top30/frmForumDisplayImage.aspx?id=160420060327092445');
////
//// drawPic(ar1);
if(this.ar1==null || ar1.Count==0 )
{
// this.MsgBox('该席位/资源无外观图!');
// this.CloseWebForm();
return ;
}
else
{
drawPic(ar1);
}
private void drawPic(ArrayList arrImages)
{
if(pic==null)
{
pic=new clsTurnPicture();
}
int i;
ArrayList ar2=new ArrayList();
ar2.Clear();
for(int k=0;k<arrImages.Count;k++)
{ i=k+1;
ar2.Add('展示图'+i.ToString());
}
Response.Write(pic.getPicsForHtml(arrImages,ar2,CurrShopName,CurBrandName,strResourceCode,1024,768,1022,640,36,34,16));
}