2011-04-05 2 views
0

Mon exigence de base est de dessiner un cercle à l'intérieur d'un BorderContainer avec la mise en page mis à BasicLayoutComment dessiner un cercle dans Border Container à l'aide d'un objet graphique?

Je lance cette méthode dans le cas CREATION_COMPLETE de l'objet BorderContainer.

this.graphics.beginFill(0xff0000); 
    this.graphics.lineStyle(1, 0x00ff00); 
    this.graphics.drawCircle(0, 0, 50); 
    this.graphics.endFill(); 

Désolé d'être franc, mais pourquoi je ne vois rien? Je sais que je dois manquer quelque chose de très basique ici. Puis-je dessiner comme ça OU devrais-je dessiner dans un autre événement? P.: Je sais que je peux créer un objet Ellipse et l'ajouter facilement au conteneur de bordure, mais j'aimerais savoir comment je peux le faire en utilisant l'objet graphique.

Répondre

2

Retour dans l'ancien temps vous passer outre updateDisplayList et à faire ce genre de dessin là-bas. Je suppose que les choses se rafraîchissent à un moment donné APRES la création complète. Puisque vous dessinez plutôt que d'ajouter un objet à la scène, votre cercle ne fait vraiment partie d'aucun cycle de vie et sera nettoyé lorsque la liste d'affichage est salie/redessinée. J'espère que cela pourra aider.

+0

Le problème que j'avais, c'est que je pouvais créer un nouvel objet Ellipse, puis l'ajouter à BordnerContainer. Cela fonctionne, mais cela rend l'application douloureusement lente. –

+0

Dans ce cas, je déplacerais votre code de dessin vers une fonction updateDisplayList surchargée pour votre BorderContainer. –

2

Je vois deux problèmes possibles.

  1. vous oubliez d'ajouter BorderContainer objet à l'étape
  2. cette est aucune référence de votre objet BorderContainer. Essayez de tracer cette dans votre cas listner ou changement de cibler ou currenTarget
0
var _shape:Shape=new Shape(); 
addchild(_shape); 

_shape.graphics.lineStyle(1, 0x000000, 1); 
_shape.graphics.drawRect(10,5,100,100); 

L'utilisation du code ci-dessus affichera un rectangle sur votre écran.

Questions connexes