2009-10-15 10 views
6

Estoy tratando de construir un componente simple que amplíe spark.components.Group para tener un color de fondo, más específicamente un componente spark.primitives.Rect estirado para llenar el fondo.Flex 4: Crear un grupo con un fondo

Esto es lo que he llegado con hasta ahora:

<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" 
    <fx:Metadata> 
     [DefaultProperty(name="content")] 
    </fx:Metadata> 

    <s:Rect id="background" width="100%" height="100%"> 
     <s:fill> 
      <s:SolidColor color="#990000"/> 
     </s:fill> 
    </s:Rect> 

    <s:Group id="container"/> 

    <s:filters> 
     <!-- For good measure ;) --> 
     <s:DropShadowFilter color="#000000" strength="0.4" blurX="5" blurY="5" distance="2" angle="90"/> 
    </s:filters> 

    <fx:Script> 
     <![CDATA[ 
      public function set content(value:Array):void { 
       this.container.mxmlContent = value; 
      } 
     ]]> 
    </fx:Script> 
</s:Group> 

Ok, por lo que la lógica aquí básicamente tiene sentido, ¿verdad? Todos los niños declarados en MXML van al Grupo llamado "contenedor". Eso está funcionando bien. Sin embargo, cuando ejecuto el ejemplo a continuación, el diseño es completamente fubar.

<s:VGroup> 
    <!-- This is the component described above --> 
    <components:MessageContainer id="component" width="100" height="100"/> 
    <mx:Slider/> 
    <mx:Slider/> 
    <mx:ColorPicker/> 
</s:VGroup> 

Esto es lo que parece:

flex fubar http://i34.tinypic.com/s4p0tz.jpg

¿Hay algo que me falta aquí? Tal vez un método que necesito anular?

Respuesta

0

Weird. Acabo de recurrir a realizar una implementación Skin y aplicarla a SkinnableContainer. Estaba compilando también con la versión Beta 2 de Flex 4. Muy extraño de hecho.

+0

Creo que Ryan Guill hablaba de una compilación nocturna, a diferencia del hito beta 2 flex 4 build: 4.0.0.10485 De todos modos, recuerdo tener un problema similar a este donde top = "0" bottom = " 0 "left =" 0 "right =" 0 "lo arregló para mí. :/ editar: lo siento, leí mal su pregunta, léala como width = "100%" height = "100%" – timoxley

+0

¿hay alguna posibilidad de que pueda publicar el código de su solución? Eso sería útil. – D3vtr0n

0

¿Qué versión de flex 4 estás usando? Acabo de copiar tu código exactamente y el resultado se ve como lo esperarías.

result http://i38.tinypic.com/i5t9it.jpg

estoy corriendo la versión beta 2 de construcción que fue lanzado en las últimas semanas. Build 4.0.0.253292. Puede actualizar su compilación si no está ejecutando la última versión, pero también puede intentar limpiar el proyecto. Puede ser que se esté confundiendo. También asegúrese de que su navegador no esté almacenando en caché el swf, lo que a veces ocurre cuando el tamaño del archivo no cambia drásticamente.

Cuestiones relacionadas