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 1 & ActionScript 2 Discussion :

utiliser une variable pour simplifier code


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 37
    Points
    37
    Par défaut utiliser une variable pour simplifier code
    bonjour
    j'ai un code identique pour plusieurs objet avec occurrence.
    voici un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    p_img10.onPress =  function() {
    p_img10._height= p_img10._height+10
    p_img10._width= p_img10._width+15
    p_img10.drag = true;
    p_img10.swapDepths(1)	
    };
    les occurrence vont de p_img1 à p_img10. pour chaque objet je doit répéter un code plutôt lourd
    je voulait savoir si c'était possible de mettre une variable "k" qui va de 1 à 10 et mettre "k" dans le code.
    si vous avez une idée pouvez vous m'en faire part ça m'aiderai beaucoup
    merci

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for(var k=1; k<11; k++)
    {
        this["p_img"+k].onPress =  function()
        {
            this._height= this._height+10
            this._width= this._width+15
            this.drag = true;
            this.swapDepths(1)    
        };
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 37
    Points
    37
    Par défaut
    merci je pense que je suis sur la bonne voie. néamoins je n'y arrive pas (j'ai un probleme le drag ne s'enclenche pas)
    voici mon code (c'est pour un drag avec ease) :
    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
     
    for(var k=1; k<11; k++)
    {
    this["p_img"+k].ease = 4;
    this["p_img"+k].targX = this["p_img"+k]._x
    this["p_img"+k].targY = this["p_img"+k]._y
     
     
     
    this["p_img"+k].panam.dr1.onPress =  function() {
    this.drag = true;
    this.swapDepths(1)
     
    };
    this["p_img"+k].onEnterFrame = function() {
     
    	if (this.drag == true) {
           this["p_img"+k].targX = _root._xmouse;
            this["p_img"+k].targY = _root._ymouse;
        }
        if (this["p_img"+k]._x != this["p_img"+k].targX | this["p_img"+k]._y != this["p_img"+k].targY) {
     
            this["p_img"+k]._x += (this["p_img"+k].targX-this["p_img"+k]._x)/this["p_img"+k].ease;
     
            this["p_img"+k]._y += (this["p_img"+k].targY-this["p_img"+k]._y)/this["p_img"+k].ease;
        }
    };
    }

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    dans les fonction évènementielles il faut utiliser this pour cibler le clip concerné :
    ( dans ces fonctions this["img"+k] ne correspond pas au clip voulue, ni à aucun clip)
    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
    var mcImage:MovieClip;
     
    for(var k=1; k<11; k++)
    {
        mcImage = this["p_img"+k];
        trace(mcImage);
     
        mcImage.ease = 4;
        mcImage.targX = mcImage._x
        mcImage.targY = mcImage._y
     
        mcImage.panam.dr1.onPress =  function()
        {
            this.drag = true;
            this.swapDepths(1);
        };
     
        mcImage.onEnterFrame = function()
        {
            if (this.drag == true) {
                this.targX = _root._xmouse;
                this.targY = _root._ymouse;
            }
            if (this._x != this.targX | this._y != this.targY) {
     
                this._x += (this.targX-this._x)/this.ease;
     
                this._y += (this.targY-this._y)/this.ease;
            }
        };
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 37
    Points
    37
    Par défaut
    je comprend pas trop; mcImage correspond a quoi ?
    parce que moi j'ai mi a sa place p_img et pour à chaque fois je doit répéter cette partie de code pour p_img1,p_img2,...p_img10. D'où une répétiton de code.

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    mcImage est une référence vers le clip p_imp1 ou p_img2 etc à chaque passage dans la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mcImage = this["p_img"+k];
    ça permet juste de clarifier le code.

    donc dans la boucle le clip cible est mcImage et dans les fonctions évènementielles (onPress ..) c'est this.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 37
    Points
    37
    Par défaut
    ah d'accord j'avais pas compris.
    je vien d'essayer et le drag ne marche toujour pas je pense avoir bien réécrit ton code. voici le mien :
    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
     
    var mcImage:MovieClip;
     
    for(var k=1; k<11; k++)
    {
    mcImage = this["p_img"+k];
    trace(mcImage);
     
    mcImage.ease = 4;
    mcImage.targX = mcImage._x
    mcImage.targY = mcImage._y
     
     
    mcImage.panam.dr1.onPress =  function() {
    this.drag = true;
    this.swapDepths(1)
     
    };
    mcImage.onEnterFrame = function() {
     
    	if (this.drag == true) {
            this.targX = _root._xmouse;
            this.targY = _root._ymouse;
        }
        if (this._x != this.targX | this._y != this.targY) {
            this._x += (this.targX-this._x)/this.ease;
            this._y += (this.targY-this._y)/this.ease;
        }
    };
    }

Discussions similaires

  1. Utiliser une variable pour mettre des étiquettes visible
    Par patate5555 dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/06/2007, 14h51
  2. Réponses: 9
    Dernier message: 16/02/2007, 16h10
  3. Utiliser une variable pour stocker les noms d'objets.
    Par en_gel_ho dans le forum Access
    Réponses: 4
    Dernier message: 03/01/2007, 17h44
  4. [FLASH MX2004] Utiliser une variable dans le code
    Par arnolem dans le forum Flash
    Réponses: 25
    Dernier message: 02/12/2005, 17h37
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 14h58

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