2010-06-27 4 views
1

Je veux avoir une toile avec une propriété "flottante". Fondamentalement, quand j'ajoute un enfant, l'enfant devrait flotter au sommet. Quand j'ajoute le deuxième enfant, il devrait flotter au-dessus du précédent.Flex - objets flottant en haut d'une toile?

Par exemple, la largeur de la toile est de 100, et j'ai deux VideoDisplay avec une largeur de 100 et de la hauteur 75.

canvas.addChild(video0); 
// Or canvas.addChildAt(video0, 0); 
// video0 should be at x=0 and y=0 
canvas.addChild(video1); 
// Or canvas.addChildAt(video1, 1); 
// video1 should be at x=0 and y=0, while video0 x=0 and y=75 

Je ne sais pas si cela est faisable, via Flex SDK ou tout tiers bibliothèque? Merci.

+0

Faut-il être un canevas? Cela ressemble à une liste que vous construisez. –

Répondre

0

Je viens de googlé un peu et trouvé une bibliothèque tiers très utile flexlib. Pour ceux qui ont la même demande, flexlib offre un FlowContainer qui répondra à vos besoins.

1

Ce que vous devez faire est de créer une fonction qui prend un objet DisplayObject, repositionne les autres enfants, puis ajoute l'enfant.

private var displayObjects:ArrayCollection; 

public function addFloatingChild(object:displayObject):void 
{ 
    // loop through displayObjects to set new positions 
    for(var i:uint; i < displayObjects.length; i++) 
    { 
     // logic for new position 
    } 

    // keep reference to child 
    displayObjects.addItemAt(object, 0); 

    // this will always put on top of other children 
    // this will always position at 0, 0 
    this.addChild(object); 
} 
Questions connexes