2009-10-15 20 views
6

J'essaye de construire un composant simple étendant spark.components.Group pour avoir une couleur de fond, plus spécifiquement un composant spark.primitives.Rect étiré pour remplir l'arrière-plan.Flex 4: Construire un groupe avec un fond

C'est ce que je suis venu avec jusqu'ici:

<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, donc la logique ici rend fondamentalement le sens, non? Tous les enfants déclarés en MXML vont au groupe appelé "container". Cela fonctionne très bien. Cependant, quand je cours l'exemple ci-dessous, la disposition est complètement 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> 

Voici à quoi il ressemble:

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

Y at-il quelque chose que je suis absent ici? Peut-être une méthode que je dois remplacer?

Répondre

0

Bizarre. J'ai juste eu recours à une implémentation Skin et à l'appliquer à un SkinnableContainer. Je compilais en utilisant la version Beta 2 de Flex 4 aussi. Très étrange en effet.

+0

Je pense que Ryan Guill parlait d'une compilation nocturne, par opposition à la version bêta 2 flex 4 build: 4.0.0.10485 Quoi qu'il en soit, je me souviens avoir un problème similaire à ceci où un top = "0" bottom = " 0 "left =" 0 "right =" 0 "l'a corrigé pour moi. :/ edit: désolé, j'ai mal lu votre question, le lire comme width = "100%" height = "100%" – timoxley

+0

une chance que vous pourriez afficher le code de votre solution? ce serait utile. – D3vtr0n

0

Quelle est la version de flex 4 que vous utilisez? Je viens de copier votre code exactement et la sortie ressemble à ce que vous attendiez.

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

Je courais la construction bêta 2 qui a été publié dans les dernières semaines. Build 4.0.0.253292. Vous pouvez mettre à jour votre build si vous n'utilisez pas la dernière version, mais vous pouvez également essayer de nettoyer le projet. Ça pourrait juste devenir confus. Assurez-vous également que votre navigateur ne met pas en cache le swf, ce qui arrive parfois lorsque la taille du fichier ne change pas radicalement.