您的位置:首页 > 其它

关于 piexview 图片切换的问题

2010-09-20 11:00 351 查看
最近写了一个 宣传性的网站。

其中要用到 一个图片切换的东西。当时就找到了 piexview 这个 flash的图片切换器。

<script type="text/javascript">
var pics="";var links="";var texts="";
pics="<%=gettexts(1)%>"; //这个是图片的路径了。 一般用相对路径
links="<%=gettexts(2)%>"; //这个是点击图片后的连接了
texts="<%=gettexts(3)%>"; //这个则是在下面切换的标题文字了。

var focus_width=200 //flash 宽度
var focus_height=180 //flash高度
var text_height=18 //标题高度
var swf_height = focus_height+text_height
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'">');
document.write('<param name="allowScriptAccess" value="sameDomain"><param name="movie" value="Images/pixviewer.swf"/*tpa=http://www.smzwgk.com/Images/pixviewer.swf*/>');
document.write('<param name="quality" value="high"><param name="bgcolor" value="#F0F0F0">');
document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
document.write('<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'">');
document.write('<embed src="Images/pixviewer.swf" wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'" menu="false" bgcolor="#ffffff" quality="high" width="'+ focus_width +'" height="'+ focus_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
document.write('</object>');
</script>

在后台可以这样取值。我以我的代码为例

/// <summary>
/// 得到文章中含有img标签的图片路径
/// </summary>
/// <param name="HTMLStr">文章内容</param>
/// <returns>图片路径</returns>
public string GetImgUrl(string HTMLStr)
{
string str = string.Empty;
Regex r = new Regex(@"<img/s+[^>]*/s*src/s*=/s*([']?)(?<url>/S+)'?[^>]*>", RegexOptions.Compiled);
Match m = r.Match(HTMLStr.ToLower());
if (m.Success)
str = m.Result("${url}");
return str;
}

/// <summary>
/// 过滤一般特殊特号,如单引、双引和回车和分号等
/// </summary>
/// <param name="theString">内容</param>
/// <returns>过滤后的内容</returns>
public static string SafetyStr(string theString)
{
string[] aryReg ={ "'", ";", "/"", "/r", "/n", "<", ">" };
for (int i = 0; i < aryReg.Length; i++)
{
theString = theString.Replace(aryReg[i], string.Empty);
}
return theString;
}

/// <summary>
/// 给图片切换器的属性赋值
/// </summary>
/// <param name="ii">根据不同的ii值来判断返回不同的内容</param>
/// <returns>返回图片切换器所需的内容</returns>
protected string gettexts(int ii)
{
string pics = ""; //图片地址
string texts = ""; //图片下面的文字描述
string paths = ""; //点击图片后的链接
string sql = "select top 5 * from zfgknews where ispicnews=1 order by updatetime desc";
DataTable dt = DBHelper.ExcueDataTable(sql, CommandType.Text, null);
for (int i = 0; i < dt.Rows.Count; i++)
{
string htmlstr = dt.Rows[i]["newscontent"].ToString();
string pics2 = GetImgUrl(htmlstr);
pics2 = SafetyStr(pics2);
pics += pics2;

string htmlstr2 = dt.Rows[i]["newstitle"].ToString();
texts += htmlstr2.Length > 12 ? htmlstr2.Substring(0, 12) + "…" : htmlstr2;

string htmlstr3 = dt.Rows[i]["id"].ToString();
paths += "Article_Show.aspx?ArticleID=" + htmlstr3;

if (i != (dt.Rows.Count - 1))
{
pics += "|";
texts += "|";
paths += "|";
}
}
if (ii == 1) // 1.代表返回图片地址
{
return pics;
}
else if (ii == 2) // 2.代表返回点击图片后的链接地址
{
return paths;
}
else // 3.代表返回图片下面的文字描述
{
return texts;
}
}

开始坐的很好。也没什么问题。到了服务器上。问题就来了。

首先我测试的是 用的本机上的图片。图片名字没中文。 当然OK。 大家都知道。服务器敏感些。对中文的支持不全。

所以在服务器上。图片名为中文的图片。不能在这个 flash中切换了。

还有就是 格式貌似只能为 JPG的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: