看到网上有人提出过这个问题,想使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管理机制
- 浏览: 87318 次
- 性别:
- 来自: 厦门
最新评论
-
abc3720:
可以要一份,你webqq的代码吗, 372049596@qq ...
超越WEBQQ -
pestwei1:
漂亮啊,高端上档次啊,flex新手,求源码学习啊,柴哥,威武霸 ...
超越WEBQQ -
daxuexinsheng:
希望您能发一份源代码给我,1624600493@qq.com, ...
眼睛累不累,养养眼吧! -
daxuexinsheng:
做得真好啊,希望您能给我发一份源代码,我也很喜欢flex,希 ...
超越WEBQQ -
zywangbing:
很不错的效果。。楼主,能分享一下源码吗?谢谢
邮箱:zywan ...
超越WEBQQ
相关推荐
在Flex开发中,有时我们需要设置`wmode`参数来优化应用程序的性能或实现特定的浏览器交互效果。然而,设置`wmode`(Window Mode)为某些值,如`transparent`或`opaque`时,可能会导致鼠标滚轮在SWF内容上失效。本...
在`<object>`标签内添加`<param name="wmode" value="transparent" />`,目的是使Flex应用支持透明的右键菜单。请注意,这个`wmode`参数可能需要在模板的三个不同位置分别添加,以确保它在所有情况下都能正常工作。 ...
在Flex应用程序开发中,我们经常会遇到需要自定义用户交互行为的需求,比如禁止用户通过鼠标右键弹出默认的上下文菜单。这篇文档将详细介绍如何在Flex项目中实现这一功能,并提供相关的源码参考。 Flex是一种基于...
在Flex开发中,透明效果是一种常见的视觉设计手法,它能够使应用程序与网页背景更好地融合,提升用户体验。要实现Flex中的透明效果,主要涉及到以下几个关键点: 1. **backgroundAlpha属性**: Flex允许开发者通过...
完全屏蔽flex自带的右键菜单,实现自定义右键菜单,附件有完整可运行的例子。 这个问题折腾了一天多,在网上搜了很多资料,几乎都是一样的,转来转去,且讲的不明不白。这里我提供了可运行的全部代码,让你轻松搞定...
Flex是一种由Adobe公司开发的富互联网应用程序(RIA)框架,主要用于构建交互性强、用户体验良好的Web应用。它基于ActionScript编程语言和MXML标记语言,能够创建动态、响应式的用户界面。JSP(JavaServer Pages)是...
首先通过设置 `<object>` 或 `<embed>` 标签的 `wmode` 属性来改善与浏览器的交互,然后通过调整Flex应用的背景颜色来避免透明度问题,最后通过启用IME支持来确保中文输入法的正常工作。这些步骤不仅可以提高用户...
例如,`moveIFrame`函数可以用来调整`iframe`的位置,使其覆盖在Flex应用的特定区域。 ```html function moveIFrame(x, y, w, h) { var frameRef = document.getElementById("myFrame"); frameRef.style.left =...
Flex是Adobe公司开发的一种用于构建富互联网应用程序(RIA)的技术框架,它基于ActionScript语言和MXML标记语言,主要用于创建交互式的、动态的Web应用程序。在这个"flex_hello"项目中,我们将探讨如何使用Flex SDK...
如果你使用的是Flash Professional这样的创作工具,可以在舞台上选择你需要透明的元件,然后在属性面板中调整其“Alpha”值,0代表完全透明,100代表完全不透明。但请注意,这种方法只适用于舞台上的元素,而非整个...
同时,设置`wmode`属性为`transparent`或`opaque`,这将使Flash动画的背景变为透明。 ```cpp m_FlashPlayer.Movie = "C:\\path_to_your\\FlashFile.swf"; m_FlashPlayer.wmode = "transparent"; ``` 3. **播放...
在Flash中,可以通过调整对象的Alpha值来改变其透明度,Alpha值范围从0到100,其中0表示完全透明,100则代表完全不透明。 2. **混合模式**:Flash提供了多种混合模式,如正常(Normal)、溶解(Dissolve)、屏幕...
然而,需要注意的是,虽然`wmode="transparent"`可以使Flash背景透明,但它可能会对性能产生一定影响,尤其是当Flash内容复杂或与其他网页元素交互时。此外,不同的浏览器和Flash版本可能对`wmode`的支持程度不同,...
在网页制作中,实现Flash的透明背景是一项常见的需求,它可以使Flash内容更好地融入网页设计,提升用户体验。在本文中,作者探讨了一种通过Dreamweaver和Flash来创建透明背景的方法,以及遇到的问题及其解决方案。 ...
特别是`WMode`属性,设置为`"transparent"`可以使Flash内容背景透明。 4. **处理重绘事件**:为了确保透明效果在窗口或控件改变时正确更新,你需要处理窗口的重绘事件,例如`WM_PAINT`消息。在这个事件处理函数中,...
Alpha值范围从0(完全透明)到1(完全不透明)。通过设置舞台上的元件或图层的Alpha值,可以创建出半透明或者部分透明的Flash元素。 2. **ActionScript控制**:除了图形层的透明度设置,还可以通过ActionScript编程...
在处理Flash内容时,经常会遇到背景色的问题,尤其是在需要Flash对象完全透明以便与其他网页元素无缝融合的情况下。本文将详细介绍如何解决Flash背景色问题,并确保Flash内容能够透明显示,避免遮挡其他网页元素。 ...
透明Flash主要通过`wmode`属性来实现。`wmode`是Flash Player的一个参数,用于控制Flash对象的窗口模式。当`wmode`设置为`transparent`时,Flash对象的背景会变得透明,允许底层HTML内容显示出来。 #### 1.3 如何...
3. HTML嵌入参数:在HTML中嵌入Flash时,可以设置`wmode`参数为`transparent`或`opaque`,使Flash具有透明背景。 四、注意事项 1. 兼容性问题:虽然Flash在早期非常流行,但随着移动设备和HTML5的普及,Flash逐渐被...