Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/03/2011, 14h01   #1
Invité de passage
 
Inscription : mai 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 11
Points : 1
Points : 1
Par défaut Problème fonction graphics.beginFill

Bonjour,
je développe actuellement une application qui va générer une grille (un ensemble de carrés associés). Chacun de ces carrés appartient à une classe "Case" qui étend la classe "Sprite" pour bénéficier de ses événements et être insérable dans la scène principale.

Lors de la création d'une nouvelle case, j'appelle donc "genererCase()". Cette fonction va construire un carré (classe "Square") qui sera par la suite associé à la case grâce à la méthode "addChild()". Il sera également stocké dans une de ses propriété, à savoir "representation".


Code :
1
2
3
4
5
6
public function genererCase():void {
			representation = new Shape();
			selectColor(getPossesseur());
			selectForme();
			representation.graphics.endFill();
		}

Mon problème se situe dans la procédure suivante, que je vais rappeler par la suite. Lors de sa création la couleur s'initialise bien (0xFFFFFF = blanc). Mais lorsque je la rappelle, malgré le fait que le debug passe bien par le "else" et que les propriétés "fstColor" soit respectivement 0x33FF33 pour Main.joueursTab[0] et 0x33CCFF pour Main.joueursTab[1]. Aucun changement (modification de couleur) ne s'effectue sur la scène principale...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private function selectColor(possesseur:int):void {
			//Couleur de fond puis de contour
			if (possesseur == 0) {
				representation.graphics.beginFill(0xFFFFFF);
				representation.graphics.lineStyle(1, 0x000000);
			}
			else {
				var couleur:uint;
				if (possesseur == 1)
					couleur = Main.joueursTab[0].fstColor;
				else if (possesseur == -1) 
					couleur = Main.joueursTab[1].fstColor;
				trace(couleur);
				representation.graphics.beginFill(couleur);
				representation.graphics.lineStyle(1, 0x000000);
			}
		}
Merci d'avoir pris le temps de lire mon problème !
YoshK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 01h46   #2
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
quand tu fais un "beginFill" ou un "lineStyle", tu dois faire une action de dessin derrière sinon ces 2 définitions de style visuel ne servent a rien !

Code :
1
2
3
4
representation.graphics.lineStyle(1, 0x000000);
representation.graphics.beginFill(0xFFFFFF);
representation.graphics.drawRect(0, 0, 10, 10);
representation.graphics.endFill();
__________________
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h02.


 
 
 
 
Partenaires

Hébergement Web