Une suite à ma question previous.Constructeur classe/base AS3
J'ai un bouton sur ma scène, qui a une classe appelée Game1 (je n'ai pas défini cette classe, je l'ai simplement liée comme Juan a répondu à mon autre question). Le bouton a 'GameButton' comme classe de base, qui contient pour le moment des instructions x, y simples.
Tous mes boutons auront une classe factice 'GameX' et une classe de base de GameButton; De cette façon, ils héritent de la classe de base, mais ils peuvent toujours avoir un graphique différent.
J'ai une classe principale qui contient le code pour ajouter ce bouton:
public class MainAteam extends MovieClip
{
public var btn1:Game1;
public function MainAteam()
{
btn1 = new Game1();
addChild(btn1);
btn1.addEventListener(MouseEvent.CLICK, startGame1);
}
// startGame 1 function here
}
Maintenant, je voudrais être en mesure de donner des valeurs x, y par des paramètres afin que je puisse placer chaque bouton sur un endroit différent . Cependant, quand j'essaie nouveau jeu (5,5) et je mets ce qui suit dans le constructeur gameobject:
package
{
import flash.display.SimpleButton;
public class GameButton extends SimpleButton
{
public function GameButton(startX:Number, startY:Number)
{
x = startX;
y = startY;
}
}
}
Je reçois l'erreur suivante:
1203: No default constructor found in base class GameButton
Je ne sais pas vraiment comment résoudre ce problème, puisque je laisse Flash définir les classes GameX pour moi (je suppose qu'elles sont juste vides) et utiliser la classe de base pour définir certaines propriétés. Si je mets juste x=5; y=5
, ça marche bien. Merci beaucoup.
Ce que je n'est maintenant mis btn1.x =, btn1.y = dans ma classe principale (ma classe de jeu) mais je ne suis pas sûr que ce soit une bonne pratique. Je préfère l'envoyer au constructeur avec des paramètres. Le problème que je vois avec ceci est que je laisse Flash générer ces classes Game1, Game2, que je n'utilise pas réellement. Je ne peux pas mettre super(); là (je suppose que ça irait là-bas). Encore confus :( – cabaret
Je viens de mettre à jour ma réponse quelques fois lol pour expliquer tout cela.Animore questions n'hésitez pas à demander –
Ouais j'ai posté plus nfo sur ce qu'il faut faire dans cette situation, expliquant aussi comment tout cela fonctionne/ce que cela signifie Vous avez 2 options (il y en a plus, mais pour simplifier), vous créez et utilisez vous-même ces classes (codées à la main) ou vous ajoutez des valeurs par défaut au constructeur de super classe –