Bon, alors j'ai récemment essayé d'obtenir ma tête correctement autour de la POO dans AS3. En ce moment j'ai un scénario très simple où j'ai une classe, Paddle, qui dessine un rectangle. Dans ma classe de document, je crée deux instances de la classe Paddle, paddle1 et paddle2.Modification des propriétés de classe dans AS3
J'ai également créé une propriété pour ma classe Paddle dont je veux changer la couleur du rectangle qu'elle dessine. Je veux être en mesure d'ajuster cette propriété de la classe principale. Je sais que je pourrais le faire en passant des attributs lors de l'instanciation de la classe, mais il semble qu'une propriété serait un meilleur moyen, et maintenant je veux savoir si c'est la bonne façon de penser ou non.
classe principale:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Engine extends Sprite
{
private var paddle1:Paddle = new Paddle();
private var paddle2:Paddle = new Paddle();
public function Engine()
{
paddle1.x = 30;
paddle1.color = 0xFF00FF;
stage.addChild(paddle1);
paddle2.x = stage.stageWidth - 45;
paddle2.color = 0xFF0000;
stage.addChild(paddle2);
}
}
}
classe Paddle:
package
{
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Graphics;
import flash.events.Event;
public class Paddle extends MovieClip
{
public var color:uint = 0xFFFFFF;
public function Paddle()
{
var child:Shape = new Shape();
child.graphics.beginFill(color);
child.graphics.drawRect(0, 260, 15, 80);
child.graphics.endFill();
addChild(child);
}
}
}
Si la modification des propriétés de cette manière est pas la meilleure façon de faire les choses alors bien sûr le dire. Sinon, qu'est-ce que je fais de mal que ça ne marche pas? On dirait que c'est quelque chose à voir avec l'ordre (au moment où la classe principale change l'attribut de couleur, il est déjà créé le rectangle et il est trop tard pour le changer?)
Merci: D
EDIT: réalisé qu'il pourrait aider à dire ce qui se passe quand j'exécute ce code. Fondamentalement changer l'attribut de couleur de la classe du moteur ne change pas la couleur du rectangle et ils ont tous deux rester juste blanc (FFFFFF)
Ah, il était comme je m'y attendais, mais j'étais trop fatigué pour voir correctement, il. J'avais le sentiment que cela avait quelque chose à voir avec l'ordre dans lequel le code était en train d'être exécuté, cependant. Votre suggestion de la fonction de tirage fonctionne bien, merci! – Ellis