`
柴秉承
  • 浏览: 87318 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

配合wmode使FLEX应用完全透明

    博客分类:
  • FLEX
阅读更多

看到网上有人提出过这个问题,想使FLEX生成的SWF文件如同FLASH IDE生成的,在wmode=transparent时效果相同。
但通过简单的设置backgroundAlpah=0是无效的,FLEX仍会生成一层透明的背景。
通过追踪Application代码,可以得知Application继承了LayoutContainer,
而在LayoutContainer的updateDisplayList方法中(第403行),可以找到如下代码:
// Wait to layout the border after all the children
// have been positioned.
createBorder();
createBorder是LayoutContainer继承的Container类中的方法:
Container中4008行:
rawChildren.addChildAt(DisplayObject(border), 0);
可知在索引0处增加了一个border,定位到498行:
/**
* @private
* The border/background object.
*/
mx_internal var border:IFlexDisplayObject;
除此之外,在systemManager存在一个Sprite的实例:mouseCatcher,见SystemManager 435行:
private var mouseCatcher:Sprite;
是SystemManager的第0级child(1级为application)
和stage高宽相同,且透明度为0。
转到2799行,可以看到绘制过程:
private function resizeMouseCatcher():void
{
if (mouseCatcher)
{
try
{
var g:Graphics = mouseCatcher.graphics;
var s:Rectangle = screen;
g.clear();
g.beginFill(0×000000, 0);
g.drawRect(0, 0, s.width, s.height);
g.endFill();
}
catch (e:SecurityError)
{
// trace(“resizeMouseCatcher: ignoring security error ” + e);
}
}
}
OK,现在回到主程序中,我们在applicationComplete事件将以上两个对象提出出来,然后在updateDisplayList中进行处理。最好不要尝试移除这两个对象,这样有可能产生异常;如果不是特别要求,尽量不要干涉或修改FLEX管理机制

分享到:
评论
1 楼 alvin198761 2011-10-17  
你想说什么

相关推荐

    Flex 设置WMODE 后滚轮失效解决的示例源码

    在Flex开发中,有时我们需要设置`wmode`参数来优化应用程序的性能或实现特定的浏览器交互效果。然而,设置`wmode`(Window Mode)为某些值,如`transparent`或`opaque`时,可能会导致鼠标滚轮在SWF内容上失效。本...

    Flex添加右键菜单

    在`<object>`标签内添加`<param name="wmode" value="transparent" />`,目的是使Flex应用支持透明的右键菜单。请注意,这个`wmode`参数可能需要在模板的三个不同位置分别添加,以确保它在所有情况下都能正常工作。 ...

    flex禁止鼠标右键源码

    在Flex应用程序开发中,我们经常会遇到需要自定义用户交互行为的需求,比如禁止用户通过鼠标右键弹出默认的上下文菜单。这篇文档将详细介绍如何在Flex项目中实现这一功能,并提供相关的源码参考。 Flex是一种基于...

    Flex 透明效果,位于页面最底层

    在Flex开发中,透明效果是一种常见的视觉设计手法,它能够使应用程序与网页背景更好地融合,提升用户体验。要实现Flex中的透明效果,主要涉及到以下几个关键点: 1. **backgroundAlpha属性**: Flex允许开发者通过...

    FLEX 完全屏蔽系统默认右键菜单,实现自定义菜单

    完全屏蔽flex自带的右键菜单,实现自定义右键菜单,附件有完整可运行的例子。 这个问题折腾了一天多,在网上搜了很多资料,几乎都是一样的,转来转去,且讲的不明不白。这里我提供了可运行的全部代码,让你轻松搞定...

    flex嵌入JSP

    Flex是一种由Adobe公司开发的富互联网应用程序(RIA)框架,主要用于构建交互性强、用户体验良好的Web应用。它基于ActionScript编程语言和MXML标记语言,能够创建动态、响应式的用户界面。JSP(JavaServer Pages)是...

    flex解决textarea,input不能输入中文的方法

    首先通过设置 `<object>` 或 `<embed>` 标签的 `wmode` 属性来改善与浏览器的交互,然后通过调整Flex应用的背景颜色来避免透明度问题,最后通过启用IME支持来确保中文输入法的正常工作。这些步骤不仅可以提高用户...

    flex技术文档编写欣赏作者

    例如,`moveIFrame`函数可以用来调整`iframe`的位置,使其覆盖在Flex应用的特定区域。 ```html function moveIFrame(x, y, w, h) { var frameRef = document.getElementById("myFrame"); frameRef.style.left =...

    flex_hello

    Flex是Adobe公司开发的一种用于构建富互联网应用程序(RIA)的技术框架,它基于ActionScript语言和MXML标记语言,主要用于创建交互式的、动态的Web应用程序。在这个"flex_hello"项目中,我们将探讨如何使用Flex SDK...

    网页flash背景透明代码

    如果你使用的是Flash Professional这样的创作工具,可以在舞台上选择你需要透明的元件,然后在属性面板中调整其“Alpha”值,0代表完全透明,100代表完全不透明。但请注意,这种方法只适用于舞台上的元素,而非整个...

    透明的Flash动画

    同时,设置`wmode`属性为`transparent`或`opaque`,这将使Flash动画的背景变为透明。 ```cpp m_FlashPlayer.Movie = "C:\\path_to_your\\FlashFile.swf"; m_FlashPlayer.wmode = "transparent"; ``` 3. **播放...

    FLASH制作透明方法

    在Flash中,可以通过调整对象的Alpha值来改变其透明度,Alpha值范围从0到100,其中0表示完全透明,100则代表完全不透明。 2. **混合模式**:Flash提供了多种混合模式,如正常(Normal)、溶解(Dissolve)、屏幕...

    143种透明Flash打包下载

    然而,需要注意的是,虽然`wmode="transparent"`可以使Flash背景透明,但它可能会对性能产生一定影响,尤其是当Flash内容复杂或与其他网页元素交互时。此外,不同的浏览器和Flash版本可能对`wmode`的支持程度不同,...

    实现flash的透明背景

    在网页制作中,实现Flash的透明背景是一项常见的需求,它可以使Flash内容更好地融入网页设计,提升用户体验。在本文中,作者探讨了一种通过Dreamweaver和Flash来创建透明背景的方法,以及遇到的问题及其解决方案。 ...

    C++flash透明源码

    特别是`WMode`属性,设置为`"transparent"`可以使Flash内容背景透明。 4. **处理重绘事件**:为了确保透明效果在窗口或控件改变时正确更新,你需要处理窗口的重绘事件,例如`WM_PAINT`消息。在这个事件处理函数中,...

    各种透明flash特效

    Alpha值范围从0(完全透明)到1(完全不透明)。通过设置舞台上的元件或图层的Alpha值,可以创建出半透明或者部分透明的Flash元素。 2. **ActionScript控制**:除了图形层的透明度设置,还可以通过ActionScript编程...

    免费下载 解决FLASH有背景色 使FLASH透明不被遮挡

    在处理Flash内容时,经常会遇到背景色的问题,尤其是在需要Flash对象完全透明以便与其他网页元素无缝融合的情况下。本文将详细介绍如何解决Flash背景色问题,并确保Flash内容能够透明显示,避免遮挡其他网页元素。 ...

    透明FLASH及时间代码总汇!

    透明Flash主要通过`wmode`属性来实现。`wmode`是Flash Player的一个参数,用于控制Flash对象的窗口模式。当`wmode`设置为`transparent`时,Flash对象的背景会变得透明,允许底层HTML内容显示出来。 #### 1.3 如何...

    flash,透明背景,很有用的

    3. HTML嵌入参数:在HTML中嵌入Flash时,可以设置`wmode`参数为`transparent`或`opaque`,使Flash具有透明背景。 四、注意事项 1. 兼容性问题:虽然Flash在早期非常流行,但随着移动设备和HTML5的普及,Flash逐渐被...

Global site tag (gtag.js) - Google Analytics