0

我在 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 设置。有任何想法吗?

4

2 回答 2

1

我认为您的问题出在 Spinner 组件中,您必须在其中设置背景颜色或 alpha,这导致您的加载程序具有背景颜色。如果你没有设置它然后设置它,因为它可能默认为 1 的 alpha。当我执行以下操作时,我没有得到任何背景,但是当我将 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>
于 2009-05-20T21:06:56.923 回答
0

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

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

于 2009-05-21T14:09:44.090 回答