IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

probleme imbrication des classes


Sujet :

ActionScript 3

  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    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 : 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

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    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

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut
    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é... -_-

  4. #4
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <mx:Script>
          <![CDATA[
             import chemin.nomDeLaClasse;
     
       ]]>
       </mx:Script>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de conception des classes
    Par faiez2012 dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2012, 10h51
  2. probleme recuperation des donnees de la classe
    Par FITRI dans le forum Langage
    Réponses: 4
    Dernier message: 29/09/2010, 13h17
  3. Réponses: 2
    Dernier message: 08/06/2010, 22h40
  4. Réponses: 9
    Dernier message: 23/09/2008, 18h00
  5. Réponses: 2
    Dernier message: 20/02/2007, 21h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo