2009-09-08 8 views
1

Imagine que j'ai un arrière-plan et que je veux montrer l'arrière-plan sous l'objet joueur. Cela peut être fait avec facilité:Actionscript 3: faire en sorte que certains objets de l'enfant A apparaissent au-dessus de l'enfant B tandis que d'autres apparaissent sous l'enfant B

Cependant, imaginez dans ce contexte, j'ai des nuages ​​transparents qui doivent apparaître au-dessus des navires et des étoiles non transparents qui doivent apparaître sous le navire. Le code ci-dessus ferait simplement passer tous les objets d'arrière-plan sous le vaisseau. Des conseils?

+3

Il n'est pas posible. Vous devez placer les nuages ​​dans un autre objet parent au-dessus de l'objet joueur. –

+0

Merci d'avoir éclairci cela. – Tom

Répondre

2

Crée un calque de premier plan rendu après l'objet Player. C'est la manière la plus facile d'accomplir cet effet.

-à-dire

var foreground:* = ...; 
addChildAt(foreground, 2); 

Je vous imagine allez avoir plusieurs objets que vous souhaitez apparaître entre les couches de premier plan et arrière-plan, donc je fait aussi la création d'une recommande couche « active », qui est le parent réel de votre objet "player".

Ainsi la hiérarchie des objets semble semblable à ceci:

Scene 
    Background 
     Rolling hills 
    Active 
     Player Sprite 
     Enemies 
     Obstacles 
    Foreground 
     Clouds 
+0

Est-ce le seul moyen? parce que cela me forcerait à créer plusieurs moteurs d'arrière-plan pour les différents objets que l'arrière-plan est généré dynamiquement (http://stackoverflow.com/questions/1342892/optimizing-my-dynamic-background-engine-for-a-2d-flash- game-in-actionscript-3). – Tom

+0

.. qui frapperait beaucoup la performance. – Tom

+0

Etes-vous sûr que ce serait un grand succès? Cela semble être le genre de chose à essayer avant d'optimiser prématurément. Puisque les objets dans les couches d'arrière-plan et de premier plan ne sont pas le même ensemble d'objets, il ne devrait y avoir presque aucune différence entre ceci et une approche qui n'avait qu'un seul objet d'arrière-plan. –