透明控件(透明容器中的非透明控件)
Posted
技术标签:
【中文标题】透明控件(透明容器中的非透明控件)【英文标题】:Transparency control (Non transparent control in transparent container) 【发布时间】:2016-02-15 20:17:56 【问题描述】:在我的一个组件中,我想要一些完全不透明的控件。有没有办法在 Flex 中关闭透明度?我的意思是,如果父容器中有多个控件,那么其中一个根本不透明。
如果我们设置更高的 alpha 值,则始终存在一定程度的透明度。如果“非透明”容器内的组件需要某种程度的透明度,这会使情况复杂化。
添加示例代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
alpha=".4" >
<s:layout>
<s:VerticalLayout verticalAlign="middle" horizontalAlign="center" gap="0"/>
</s:layout>
<!-- following container should not be transparent -->
<s:BorderContainer backgroundColor="white">
</s:BorderContainer>
<s:Group >
<s:BorderContainer alpha="1">
</s:BorderContainer>
</s:Group>
</s:Group>
【问题讨论】:
如果一切都失败了......只需创建自己的用户界面(添加 AS3 形状甚至加载 PNG 文件?)然后您可以通过代码控制每个项目以响应用户拖动、单击等此外,由于您的代码知道您添加到舞台(显示列表)的各个项目,您可以使用它来影响各个透明度等。 这是我最后不得不使用的选项,虽然我一点也不喜欢它。需要能够设置具有透明子代的不透明子代。 然后使用addChild
将MovieClip
或Sprite
变量声明为内容容器。所以现在你可以尝试.. mc_Opaque.addChild( mc_Trans );
并更改 mc_Trans 的 alpha(在 mc_Opaque 内部)它变成像 mc_Opaque.mc_Trans.alpha = 0.4;
【参考方案1】:
很遗憾,您的要求是不可能的。相反,您可以设置父级的透明度,只根据需要设置所需子级的透明度。
【讨论】:
以上是关于透明控件(透明容器中的非透明控件)的主要内容,如果未能解决你的问题,请参考以下文章