SWFLoader的透明背景

时间:2009-05-20 20:28:25

标签: flex flash transparency swfloader

我在SWF中创建了一个“加载”微调器。我使用SWFLoader在我的主应用程序SWF中显示此微调器。如何使SWFLoader透明?目前它使用Flex的默认背景颜色,即使我已设置backgroundAlpha="0"

我的微调器SWF的主要MXML :(注意使用backgroundAlpha

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:Controls="Controls.*" width="30" height="30" backgroundAlpha="0">
    <Controls:Spinner id="ctrlSpinner" />  <!-- spinner logic encapsulated in a component -->
</mx:Application>

我的应用程序SWF的主要MXML:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="801">
    <mx:SWFLoader x="10" y="173" id="swfSpinner" autoLoad="true" scaleContent="true" >
        <mx:source>SWFs/LoadingSpinnerApp.swf</mx:source>
    </mx:SWFLoader>
</mx:Application>

请注意,Spinner控件本身是透明的。 SWFLoader只是让它忽略我的backgroundAlpha设置。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为您的问题在Spinner组件中,您必须在那里设置背景颜色或alpha,这会导致您的加载器具有背景颜色。如果你没有设置它然后设置它因为它可能默认为alpha为1.当我执行以下操作时我没有得到任何背景但是当我将alpha更改为1时会出现黑色背景。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute" backgroundAlpha="1" 
backgroundColor="#000000">
    <mx:Text id="textBox" text="Hey World"/>
</mx:Application>

<?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute" backgroundColor="#ffffff">

    <mx:Canvas backgroundColor="#ff0000" width="200" 
height="200" verticalCenter="0" horizontalCenter="0">
        <mx:SWFLoader x="10" y="173" id="swfSpinner" 
autoLoad="true" scaleContent="true" source="DebuggerTest.swf"/>
    </mx:Canvas>

    </mx:Application>

答案 1 :(得分:0)

事实证明我正在做正确的事 - Flex只是没有将我的微调器SWF的最新版本复制到我的主应用程序的bin中。相反,它一直坚持在我添加透明度之前构建的先前版本。

我手动将新的微调器SWF复制到主应用程序的bin中,然后它就可以了!