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 : Sélectionner tout - Visualiser dans une fenêtre à part
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