2012-01-24 38 views
0

我目前在这个网站上工作(http://www.jowannes.com/thomasschoof/flash/LauraBarsby.html),我创建了一个小画廊。当你按下图像时,它将成为网站的背景。现在,如果背景是白色的,并且您再次查看其他页面,则会出现一些问题,您无法再阅读文本。在Flex中加载页面事件?

我希望当你回到另一个页面时,背景变成原来的一个。所以基本上我正在寻找页面(组件?)加载事件或类似的东西,但我似乎无法找到它。

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)"/> 

我也有问题,即图像显得捉襟见肘,因为我可以不设置填充模式NOR可以将它们居中,对此有何想法?

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

+0

是您正在寻找的creationcomplete事件? –

+0

我想可能是,我该如何利用它?谢谢。 – Schoof

+0

那么,您可以在应用程序的MXML声明中为您的应用程序添加'creationComplete =“函数''处理程序。 –

回答

1

我找到了解决办法:在viewstack你有一个处理函数调用change=,我只是把我的方法在那里和它的工作。