在Flex中加载页面事件?

时间:2012-01-24 17:32:35

标签: image flex load

我目前正在这个网站上工作(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)"/>

我也遇到了图像被拉伸的问题,因为我无法设置fillmode NOR我可以将它们居中,对此有什么想法吗?

我希望有人可以帮助我,谢谢 托马斯

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:在viewstack中,您有一个名为change=的处理程序,我只需将我的方法放在那里就可以了。