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 20/04/2011, 10h17   #1
Futur Membre du Club
 
Inscription : avril 2007
Messages : 129
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 129
Points : 19
Points : 19
Par défaut ActionScript And Spark Button

Bonjour, je souhaiterais avoir des informations concernant les bouts de codes suivants svp

Les 2 morceaux sont des classes très simple qui affiche un champ texte et un bouton.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
package {
	import flash.display.Sprite;
	import flash.text.TextField;
 
		public class SimpleTextField extends Sprite{
 
		public function SimpleTextField(){
		var myTextField:TextField = new TextField();
		myTextField.text = "display something";
		addChild(myTextField);
 
		}
		}
}
En compilant ce fichier SimpleTextField.as et en l'exécutant avec un player on obtient "display something" ça c'est bon

Mais en faisant de même avec ce fichier :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
package {
import flash.display.Sprite;
import spark.components.Button;
 
 
public class RectangleRedimensionAleatoire extends Sprite {
    public function rectangleRedimensionAleatoire() {
 
        var myButton:Button = new Button();
        myButton.label = "test";
        addChild(myButton);
 
    }
}
}
Rien ne s'affiche et je me demande pourquoi
Si quelqu'un pourrait expliquer cette différence de comportement ça serait cool mon but étant d'en apprendre un peu plus sur AS3
Merci
kimlaw95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 10h24   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

pour les composants Spark, tu dois utiliser addElement() et non pas addChild()
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 11h07   #3
Nouveau Membre du Club
 
Inscription : mars 2009
Messages : 71
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 71
Points : 34
Points : 34
Quand tu teste t'as une exception qui te le dit clairement
Citation:
Error: addChild() is not available in this class. Instead, use addElement() or modify the skin, if you have one.
Snote100024 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 11h44   #4
Futur Membre du Club
 
Inscription : avril 2007
Messages : 129
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 129
Points : 19
Points : 19
Merci pour vos réponses
Ma version de mxmlc est la 4.1 qui est dans le Flex SDK 4.5.0.18623.

@Snote100024
Lorsque je compile mon fichier

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
package {
import flash.display.Sprite;
import spark.components.Button;
 
 
public class RectangleRedimensionAleatoire extends Sprite {
    public function RectangleRedimensionAleatoire() {
 
        var myButton:Button = new Button();
        myButton.label = "test";
        addChild(myButton);
 
    }
}
}
avec la commande :
mxmlc RectangleRedimensionAleatoire.as
je n'obtiens pas le message d'erreur que tu as.

@Madfrix
Lorsque je compile mon fichier

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package {
import flash.display.Sprite;
import spark.components.Button;


public class RectangleRedimensionAleatoire extends Sprite {
    public function RectangleRedimensionAleatoire() {

        var myButton:Button = new Button();
        myButton.label = "test";
        addElement(myButton);

    }
}
}
avec la commande :
Code :
1
2
 
mxmlc RectangleRedimensionAleatoire.as
j'ai des messages d'erreurs:
Citation:
mxmlc C:\RectangleRedimensionAleatoire.as
Loading configuration file D:\PERSO\ActionScript3\flex_sdk_4.1.0.16076\frameworks\flex-config.xml
C:\RectangleRedimensionAleatoire.as(11): col: 9 Error: Call to a possibly undefined method addElement.

addElement(myButton);
^

Je pense que la méthode n'existe pas.
Quels sont vos versions ?
Merci
kimlaw95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 13h09   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

sprite ne défini pas la méthode addElement(), elle est défini par Group()

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
package {
import spark.components.Group;
import spark.components.Button;
 
 
public class RectangleRedimensionAleatoire extends Group{
    public function RectangleRedimensionAleatoire() {
 
        var myButton:Button = new Button();
        myButton.label = "test";
        addElement(myButton);
 
    }
}
}
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 14h25   #6
Futur Membre du Club
 
Inscription : avril 2007
Messages : 129
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 129
Points : 19
Points : 19
Hello Madfrix
je pense que ce que ton code fait c'est ajouter le bouton au spark.Group mais rien de plus.
Après j'ai essayé d'utiliser le addChild() de Sprite mais ça na rien donner.
c'est normal je pense car au final on ajoute le bouton dans le Group et on affiche le Groupe mais comme on a vu que le bouton n'apparaissait pas...
rien n'apparait
kimlaw95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h13.


 
 
 
 
Partenaires

Hébergement Web