2009-05-20 55 views
0

我在SWF中創建了一個「加載」微調器。我使用SWFLoader在我的主應用程序SWF中顯示此微調器。我如何使SWFLoader透明?目前它使用Flex的默認背景色,儘管我設置了backgroundAlpha="0"SWFLoader的透明背景

我微調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> 

注意微調控件本身是透明的。有一些關於SWFLoader導致它忽略我的backgroundAlpha設置。有任何想法嗎?

回答

0

事實證明,我是在做正確的事情 - Flex的只是沒有複製的最新版本我微調SWF的我的主要應用程序的bin。相反,它一直堅持在添加透明度之前構建的先前版本。

我手動將新的微調器SWF複製到主應用程序的垃圾箱,然後它工作!

+0

我聽到了這個問題......我也遇到過類似於編譯器的問題。使用模塊時或多或少。我希望Flex4中的這一點得到改進! – Shua 2010-05-05 14:18:52

1

我認爲你的問題是在Spinner組件中,你必須在那裏設置背景顏色或alpha,這會導致你的loader有一個背景顏色。如果你不設置它然後設置它,因爲它可能默認爲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> 
+0

謝謝。雖然這不是我的問題的解決方案,但我相信這是大多數情況下的解決方案。 – Keith 2010-05-05 13:50:32