Прозрачный фон для SWFLoader - PullRequest
0 голосов
/ 21 мая 2009

Я создал спиннер "Загрузка" в SWF. Я показываю этот счетчик в моем основном приложении SWF, используя SWFLoader. Как сделать прозрачный SWFLoader? В настоящее время он использует цвет фона Flex по умолчанию, хотя я установил backgroundAlpha="0".

Основной MXML SWF моего блесны: (обратите внимание на использование 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>

Основной MXML SWF моего приложения:

<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 ]

1 голос
/ 21 мая 2009

Я думаю, что ваша проблема в компоненте Spinner, вы должны установить там цвет фона или альфа, и это заставляет ваш загрузчик иметь цвет фона. если вы не устанавливаете его, то установите его, потому что он, вероятно, по умолчанию имеет альфа-значение 1. Когда я делаю следующее, я не получаю никакого фона, но когда я меняю альфа на 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 голосов
/ 21 мая 2009

Оказывается, я поступил правильно - Flex просто не копировал последнюю версию моего SWF-счетчика в корзину моего основного приложения. Вместо этого он держался за предыдущую версию, созданную до того, как я добавил прозрачность.

Я вручную скопировал SWF нового блесны в корзину основного приложения, и тогда он заработал!

...