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 30/11/2007, 15h10   #1
Futur Membre du Club
 
Inscription : février 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 64
Points : 17
Points : 17
Par défaut probleme imbrication des classes

Bonjour
Je voudrais essayer cette classe pour produire le même résultat que la :
http://www.mega-art.com/blog/?p=5
J’appelle cette classe actionscript dans un ficher mmxml avec flex builder 3..
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
 
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.KeyboardEvent;
 
    // taille du fichier Flash pour le compilateur FLEX 2
    [SWF(frameRate='30',width='320',height='240',backgroundColor='0×869CA7')]
 
    public class DessinSprite extends Sprite
    {
        // la variable qui contient le descriptif du sprite
        private var _sprite:Sprite;
 
        // on définit le décalage du sprite en X et Y
        // quand on le déplace au clavier
        private    var xDecal:Number = 0;
        private    var yDecal:Number = 0;
 
        public function DessinSprite()
        {
            // on fait la création d'un sprite d'affichage
            _sprite = new Sprite();
 
            // on définit le cercle du sprite
            // sa couleur de remplissage
            _sprite.graphics.beginFill(0xff00ff);
 
            // création d'un simple cercle, centre 160,120 et rayon 100
            var xpos:Number = 160;
            var ypos:Number = 120;
            var radius:Number = 100;
            _sprite.graphics.drawCircle(xpos, ypos, radius);
 
            // la fin du remplissage
            _sprite.graphics.endFill();
 
            // on l'ajoute à la liste d'affichage
            addChild(_sprite);
 
            // on ajoute 2 évènements sur le sprite
            // le nom de la ss/routine onMouseDown n'est pas imposé
            // mais c'est plus pratique pour s'y retrouver
            _sprite.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
            _sprite.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
 
            // on gère maintenant le clavier
            // la scène doit pouvoir recevoir les évènements clavier
            stage.focus = this;
 
            // on ajoute un évènement de type clavier sur la scène
            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
        }
 
        // les s/sroutines
 
        private function onMouseDown(event:MouseEvent):void
        {
            // on clique sur le rond, on dessine le 1er point du de la ligne
            _sprite.graphics.lineStyle(1, 0, 1);
            _sprite.graphics.moveTo(mouseX  - xDecal, mouseY - yDecal);
 
            // on ajoute la s/s routine qui sera activé lorsque je bouge la souris
            _sprite.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
        }
 
        private function onMouseMove(event:MouseEvent):void
        {
            // je trace la suite de points de ma ligne
            _sprite.graphics.lineTo(mouseX - xDecal, mouseY - yDecal);
        }
 
        private function onMouseUp(event:MouseEvent):void
        {
            // quand on relève le bouton de la sourie, on enlève le script onMouseMove
            _sprite.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
        }
 
        private function onKeyDown(event:KeyboardEvent):void
        {
            // lorsque j'appuye sur les touches flêchées, je déplace mon cercle
            trace("keyCode  : " + event.keyCode);
            trace("charCode : " + event.charCode + "n");
 
            // la valeur absolue du décalage
            var decal:Number = 5;
 
            // je récupère ma touche flèche
            switch(event.keyCode) {
                case(37) : // touche gauche
                    xDecal -= decal;
                    _sprite.x -= decal;
                    break;
                case(38) : // touche haut
                    yDecal -= decal;
                    _sprite.y -= decal;
                    break;
                case(39) : // touche droite
                    xDecal += decal;
                    _sprite.x += decal;
                    break;
                case(40) : // touche bas
                    yDecal += decal;
                    _sprite.y += decal;
                    break;
            }    
 
        }
 
    }
J’ai l’erreur suivante :
1131: Les classes ne peuvent pas être imbriquées.


Quelqu’un pourrait m’aider ?
Merci d’avance
touane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 16h31   #2
Membre du Club
 
Inscription : octobre 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 174
Points : 53
Points : 53
salut , je passe et j'ai vus ton poste
il me semble, que ton encapsulation n'est pas totale
car tu as oublié tous au debut le terme:
package { // ---tous ton codes
} ==>noublis surtous pas se singleton; car tu fermera l'encapsulation
ceci dit,tous dependra aussi dans quelle contexte tu te trouve.
fait l'essai, je t'invite a aller sur le tutaux de Adobe Macromedia coté package
c'est bien expliqué.
qui est bien fait, car je lutilise, puisque moi aussi, je suis a fond dans l'AS3 pour mon projet..a bientot
amateur_will est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 21h35   #3
Futur Membre du Club
 
Inscription : février 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 64
Points : 17
Points : 17
salut,
merci pour la réponse rapide, seulement j'avais enlevé le package parce qu'avec un package, ça me dit que "les packages ne peuvent pas etre imbriquée".
sinon j'ai lu la doc sur les packages içi ::http://livedocs.adobe.com/flash/9.0_...=00000041.html

mais je suis pas plus avancé... -_-
touane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 15h14   #4
Futur Membre du Club
 
Inscription : février 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 64
Points : 17
Points : 17
alors j'ai rajouté un nom de package, crée un dossier portant ce nom pour mettre la classe actionscript et appeler la classe comme cela

Code :
1
2
3
4
5
6
7
 
<mx:Script>
      <![CDATA[
         import chemin.nomDeLaClasse;
 
   ]]>
   </mx:Script>
touane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h31.


 
 
 
 
Partenaires

Hébergement Web