Flash与Ocx控件在页面中的层叠顺序问题
最近遇到一个比较棘手的问题:把一个Flash遮盖在可视化的Ocx控件上面。
问题本身并不算棘手,因为Flash和可视化的Ocx控件在浏览器中都默认属于窗口元素,都用Object标签来嵌入页面。查阅文档得知同级别的对象可以用z-index来对层叠顺序进行控制,但必须对Object对象都设置style=“position:absolute|relative|fixed”。写了一个测试页面,验证可行。
那是不是这个问题就解决了呢?随之而来的问题是这个FLash是一个不规则的带alpha通道的Flash,需求是仅仅绘制可视的部分,要把背景变成透明。
以前写Flex的时候知道用Flash的wmode属性来设置flash透明,只需要在Object或者Embed标签内加上<param name="wmode" value="transparent" />即可,下班之前天真地告诉同事,设置一个参数就可以了,不曾想结果并不如预期的那样。一旦设置了这个属性,Flash就降级为<div>这个非窗口级别的元素了,自然而然无法盖在窗口级别的ocx控件上。今早查阅wmode相关文档才知道这个“噩耗”。这里引用一下wmode的说明文档:
++++++++++++Flash wmode property Doc+++++++++++++
window 模式
默认情况下的显示模式,在这种模式下flash player有自己的窗口句柄,这就意味着flash影片是存在于Windows中的一个显示实例,并且是在浏览器核心显示窗口之上的,所以flash只是貌似显示在浏览器中,但这也是flash最快最有效率的渲染模式。由于他是独立于浏览器的HTML渲染表面,这就导致默认显示方式下flash总是会遮住位置与他重合的所有DHTML层。
但是大多数苹果电脑浏览器会允许DHTML层显示在flash之上,但当flash影片播放时会出现比较诡异的现象,比如DHTML层像被flash刮掉一块一样显示异常。
Opaque 模式
这是一种无窗口模式,在这种情况下flash player没有自己的窗口句柄,这就需要浏览器需要告诉flash player在浏览器的渲染表面绘制的时间和位置。这时flash影片就不会在高于浏览器HTML渲染表面而是与其他元素一样在同一个页面上,因此你就可以使用z-index值来控制DHTML元素是遮盖flash或者被遮盖。
Transparent 模式
透明模式,在这种模式下flash player会将stage的背景色alpha值将为0并且只会绘制stage上真实可见的对象,
相关文档:
、在Flash加入:<param name="wmode" value="opaque">
2、在DIV里加入:position:absolute;z-index:10;(数字越大越处于上层)
FLASH透明背景
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 ......
在网页中怎样给已发布的FLASH添加链接
解决思路:
因为网页中的 Flash 是以控件形式出现的,优先级别较高,所以直接对它加链接是无效的,不过可以用按钮控件 BUTTON 来实现。
具体步骤
1.直接在按钮上加上onClick事件打开指定页面:
<button style="width ......
使用FLASH做界面美化是一种较为常见的方式,FLASH动画制做简单,美观大方,而且将FLASH嵌入到应用程序界面上也是非常容易的,只
要放置一个Shockwave
Flash控件即可。但这样做出来的界面有两个问题,一是在FLASH上点击右键会有FLASH的菜单,二是在FLASH上点击的鼠标消息从应用程序里是
获取不到的,FLASH控件并不会向用� ......
在wonderfl 网站当中,有很多创意的flash 程序,呈现的视角效果能够给予很高的启发性。今天,又要继续学习flash 技术,把在哪里看到的东西记录一下,这种位图应用可以变化出很多神奇的效果。一个像素可以当作一个微小的粒子处理,我们可以采用设置像素点位置的方式,对空白的位图数据进行设置点,这些点会分布在位图 ......
C#与Flash交互 (转自小磊在线)
C#与Flash交互
前段日子公司要求做一个C#与Flash交互的东西,用来C#与短信猫通讯将数据传到Flash上显示与操作的应用。
第一步C#添加组件
打开VS2005-工具-选择工具箱项-COM组件-选择Shockwave Flash Object-确定
添加好组件往场景上拖放,如果提示注册需求注册
c# 注册控件-在运行输 ......