带有 Flash 变量的简单 ASP.NET SWF 容器控件
易于使用的带有 Flash 变量的 ASP.NET SWF 容器控件。
引言
我发现的大多数 SWF 容器都过于复杂,价格昂贵,或者根本没有我需要的功能。这个小型 Web 控件是任何 SWF 控件的容器,并且还可以动态接收 Flash 变量。
使用代码
要使用此代码,只需将类 EmbeddedObject
添加到您的 Web 应用程序中,不要忘记更改命名空间名称以适应您的需求。添加后,编译应用程序以刷新工具箱项,然后将嵌入式 SWF 对象拖到您选择的网页上。
要动态地在运行时添加 Flash 变量,请使用 AddVariable
方法。
新的 Flash 变量将被渲染到控件中并发送到客户端。
EmbeddedObject1.AddVariable("FLV_PATH", txtFlvPath.Text)
代码的简洁性体现在渲染方法中,它创建一个简单的 Flash 对象,其中包含嵌入的 Flash 变量。如果您查看包含 Flash 广告的任何网页的源代码,您可能会看到类似的内容。
protected override void RenderContents(HtmlTextWriter writer)
{
try
{
StringBuilder sb = new StringBuilder();
string flashVariableString = "";
foreach (FlashVariable fv in FlashVariables)
flashVariableString += fv.Name + "=" + fv.Value + "&";
if (FlashVariables.Count > 0)
flashVariableString = flashVariableString.Substring(0,
flashVariableString.Length - 1);
sb.Append("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ");
sb.Append("codebase=\"http://download.macromedia.com/pub/" +
"shockwave/cabs/flash/swflash.cab#version=5,0,2,0\" ID=Moshe Width=" +
Width.Value.ToString() + " Height=" + Height.Value.ToString() + " > ");
sb.Append("<param name=movie value=\"" + FilePath.ToString() + "\"> ");
sb.Append("<param name=FlashVars value=\"" + flashVariableString + "\">");
sb.Append("<param name=quality value=high> ");
sb.Append("<param name=BGCOLOR value=#FFFFFF>");
sb.Append("<embed src=\"" + FilePath.ToString() + "\" ");
sb.Append("pluginspage=\"http://www.macromedia.com/shockwave/download/" +
"index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application" +
"/x-shockwave-flash\" ");
sb.Append("Width = " + Width.Value.ToString() + " ");
sb.Append("Height = " + Height.Value.ToString() + " ");
sb.Append("bgcolor=#FFFFFF ");
sb.Append("FlashVars=\""+ flashVariableString + "\" ");
sb.Append("TYPE=\"application/x-shockwave-flash\" ");
sb.Append("><embed></object>");
writer.Write(sb.ToString());
}
catch(Exception ex)
{
writer.RenderBeginTag(HtmlTextWriterTag.Div);
writer.Write("Custom Flash Control");
writer.RenderEndTag();
}
}
关注点
这个小工具在尝试使用其他购买的 SWF 包装控件时为我节省了大量麻烦。但有时,最好寻找扩展的功能。
如果您是一位经常使用 Flash 的网页设计师,您会发现这个工具非常有用,因为您可以轻松地在 Web 服务器上的 C# 代码和 Flash 控件之间进行通信。