Загрузить страницу события во Flex? - PullRequest
0 голосов
/ 24 января 2012

Я сейчас работаю над этим сайтом (http://www.jowannes.com/thomasschoof/flash/LauraBarsby.html), и я создал небольшую галерею. Когда вы нажимаете изображение, оно становится фоном сайта. Теперь у этого есть некоторые проблемы, если фон белый, и вы смотрите на снова на других страницах, вы больше не можете читать текст.

Мне бы хотелось, чтобы, когда вы вернетесь на другую страницу, фон изменится на оригинальный. Так что в основном я ищу событие загрузки страницы (компонента?) Или что-то подобное, но я не могу его найти.

CreationCompleted не работает для этого, потому что при переходе к нему во второй раз, когда он уже создан, фон не меняется.

Я устанавливаю фон следующим образом:

Главная страница:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:component="component.*">

    <fx:Script>
        <![CDATA[

            public function changeBackground(bitmapFillObj:BitmapFill):void
            {
                backgroundContainer.backgroundFill = bitmapFillObj;
            }

        ]]>
    </fx:Script>

    <fx:Declarations>
        <s:BitmapFill id="_bg1" source="@Embed('assets/bg1.jpg')"/>
        <s:BitmapFill id="_bg2" source="@Embed('assets/bg2.jpg')"/>
    </fx:Declarations>

    <s:BorderContainer id="backgroundContainer" width="100%" height="100%" backgroundImage="@Embed('assets/bg1.jpg')" borderAlpha="0">

        <component:home/>

    </s:BorderContainer>

</s:WindowedApplication>

Компонент:

<fx:Script>
    <![CDATA[
        import mx.core.FlexGlobals;
    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<s:layout>
    <s:HorizontalLayout/>
</s:layout>

<s:Button label="click to show bg 1" click="FlexGlobals.topLevelApplication.changeBackground(FlexGlobals.topLevelApplication._bg1)"/>

<s:Button label="click to show bg 2" click="FlexGlobals.topLevelApplication.changeBackground(FlexGlobals.topLevelApplication._bg2)"/>

У меня также проблема в том, что изображения растягиваются, потому что я не могу установить режим заполнения. ИЛИ могу ли я отцентрировать их, есть идеи для этого?

Я надеюсь, что кто-нибудь может мне помочь, спасибо Томас

1 Ответ

1 голос
/ 25 января 2012

Я нашел решение: в viewstack у вас есть обработчик с именем change=, я просто добавил туда свой метод, и он заработал.

...