嵌入 Flash的自定义控件

分享于 

3分钟阅读

Web开发

  繁體 雙語

介绍

在最近的一些 IE 版本中,Flash 电影需要点击才能激活它们。 如果你的Flash 是页面设计的一部分。 但是,有一些解决方案可以解决这个问题。 换句话说,我们需要 IE的一些代码和 Opera。Firefox。Safari和它的他收藏浏览器的不同代码。 一个 ASP.NET 自定义控件可以使这里成为可能。

使用代码

只需将这里控件添加到工具栏,就可以了。 拖放到页面上,选择要嵌入的SWF文件。

Points of interest

让我们考虑细节。首先,我们需要了解浏览器。 没有问题:Page.Request.Browser.Browser 将返回浏览器 NAME。 现在,我们知道了浏览器请求我们的页面。 下一步是为浏览器呈现正确的HTML。 主要思想是从外部JavaScript文件 inside 编写 Flash <object> 节点一些容器( 这里实现中的div )。 但是,使用定制控件来携带JavaScript文件并不是很好。 所以,我们将把 JavaScript inside 嵌入到我们的DLL中。 下面是我们的JavaScript:

function ActivateFlash(id,content)
{
 document.getElementById(id).innerHTML = content;
}

非常简单。但我们不能在同一页面上写它,很重要的是将它放入外部JavaScript资源。 所以,我们有 file: activate.js。

要将它嵌入到我们的程序集,需要将生成操作更改为"嵌入式资源",并将该行添加到 AssemblyInfo.cs:

[assembly: System.Web.UI.WebResource("EmbedFlash.activate.js",
 "application/x-javascript")]

此外,我们还需要提供以下属性: WidthHeightWMode ( WindowedOpaqueTransparent ) 和 Flash 文件 URL ( SWFURL )。 但这很简单。

我们可能希望在设计模式下浏览SWF文件。 为此,我们需要将以下属性添加到 SWFURL 属性中:

[EditorAttribute(typeof(System.Web.UI.Design.UrlEditor), typeof(UITypeEditor))]

它告诉设计器将 UrlEditor 类用作这里属性的UITypeEditor

更多信息可以在源代码中找到。

历史记录

本文最初发布在 ASP.NET 咖啡屋: 提示和技巧,然后在CodeProject上进行一些修改。 在 IE 6和 7.Firefox。Opera 和Safari中测试 Flash 嵌入。

  • January,我发现了一个丑陋的,我纠正了它。

相关文章