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

Flash Discussion :

[FLASH MX2004] Profondeur et texte dynamique


Sujet :

Flash

  1. #1
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut [FLASH MX2004] Profondeur et texte dynamique
    Bonjour à tous !

    J'ai un petit soucis avec une de mes animations.
    Voici mon code:

    Image 1
    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
    //lignes des barres grises
    this.createEmptyMovieClip("traitVert1",0);
    this.createEmptyMovieClip("traitVert2",1);
    this.createEmptyMovieClip("traitHoriz1",2);
    this.createEmptyMovieClip("traitHoriz2",3);
    //lignes du centre
    this.createEmptyMovieClip("traitVert3",4);
    this.createEmptyMovieClip("traitVert4",5);
    this.createEmptyMovieClip("traitHoriz3",6);
    this.createEmptyMovieClip("traitHoriz4",7);
     
    //définition des variables de tracé:
    xPosVert1=40;
    yPosVert1=600;
    xPosVert2=160;
    yPosVert2=0;
     
    xPosHoriz1=0;
    yPosHoriz1=40;
    xPosHoriz2=800;
    yPosHoriz2=100;
     
    xPosVert3=200;
    yPosVert3=130;
    xPosHoriz3=180;
    yPosHoriz3=150;
     
    xPosVert4=680;
    yPosVert4=500;
    xPosHoriz4=700;
    yPosHoriz4=480;
     
    //initialisation du rappel de page
    mcRappel.mcRap.texte="ACCUEIL";
    mcRappel.swapDepths(31);
    Image 2
    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
    this.onEnterFrame=function(){
    //traits dans barres grises
    	//déplacement traits verticaux
    	with(this.traitVert1){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosVert1,yPosVert1);
    		lineTo(xPosVert1,yPosVert1-20);
    	}
    	with(this.traitVert2){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosVert2,yPosVert2);
    		lineTo(xPosVert2,yPosVert+20);
    	}
    //déplacement traits horizontaux
    	with(traitHoriz1){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosHoriz1,yPosHoriz1);
    		lineTo(xPosHoriz1+20,yPosHoriz1);
    	}
    	with(traitHoriz2){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosHoriz2,yPosHoriz2);
    		lineTo(xPosHoriz2-20,yPosHoriz2);
    	}
    	//incrémentation des variables
    	yPosVert1-=20;
    	yPosVert2+=20;
    	xPosHoriz1+=20;
    	xPosHoriz2-=20;
    	//Traits centraux
    	if(xPosHoriz3<380){
    		with(traitHoriz3){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosHoriz3,yPosHoriz3);
    			lineTo(xPosHoriz3+10,yPosHoriz3);
    		}
    		with(traitVert3){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosVert3,yPosVert3);
    			lineTo(xPosVert3,yPosVert3+10);
    		}
    		with(traitHoriz4){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosHoriz4,yPosHoriz4);
    			lineTo(xPosHoriz4-20,yPosHoriz4);
    		}
    		with(traitVert4){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosVert4,yPosVert4);
    			lineTo(xPosVert4,yPosVert4-10);
    		}
    		//incrémentation des compteurs
    		xPosHoriz3+=10;
    		xPosHoriz4-=10;
    		yPosVert3+=10;
    		yPosVert4-=10;
    	}
    }
    Image 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(xPosHoriz1<800){
    	gotoAndPlay(2);
    }
    delete this.onEnterFrame;
    Désolé, c'est un petit peu long...
    Le problème est le suivant:
    Sur l'image 1 je défini des paramètres initiaux, et notamment une variable de texte dynamique située sur un MC (mcRappel.mcRap.texte="ACCUEIL"; mcRappel.swapDepths(31); ).
    Sur l'image 2 je défini une fonction qui dessine des lignes horizontales et verticales gràce à une boucle (image 3).

    Les lignes que je dessine passe par défaut "au dessus" de mon MC contenant le texte dynamique. Ce qui bien sûr est inesthétique. Je souhaite donc mettre ce MC "au dessus" de ces lignes tracées dans le code (dont les profondeurs sont comprises entre 0 et 7).
    J'ai donc pensé à changer sa profondeur par l'instruction swapDepths (mcRappel.swapDepths(31); ).
    Le problème est que dès lors ou je change cette profondeur, le texte dynamique perd sa valeur (ici "acceuil") et affiche la valeur définie par défaut (alors que si je ne change pas cette propriété, il s'affiche correctement, mais "en dessous" des lignes que je dessine dans le code).
    Sauriez-vous comment procéder pour que ma zone de texte dynamique s'affiche correctement dans le MC et au premier plan ?

    Je ne comprends vraiment pas.
    L'instruction swapDepths pose-t-elle des problèmes avec les zones de textes dynamiques ? Serait-ce du au fait que ma zone de texte ce trouve dans un MC animé ?

    Par avance merci pour votre aide!

  2. #2
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello

    Déjà tu devrais bosser dans un clip et pas sur ta scène principale.
    Ensuite le clip qui est sur ta scène tu peux l'attacher dynamiquement avec attacMovie et le positionner directement où tu veux en profondeur.

    Sinon je comprends pas ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(xPosHoriz1<800){
       gotoAndPlay(2);
    }
    delete this.onEnterFrame;
    Pourquoi tu fais pas tout dans une seule image clé ? Faudrait voir un fla avec ce que tu fais car j'ai l'impression de raté un truc dans tout ce que tu expliques ?

    eKA+

  3. #3
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    Merci pour ta réponse.
    Comme tu le vois je débute en actionscript

    Je viens d'essayer quelquechose du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    newMc.attachMovie("rappel_rotate","newID",10000);
    newMc.mcRap.texte="Accueil";
    Où newMc est un MC vide sur la scène.
    En utilisant cette méthode, mon nouveau clip se trouve toujours "sous" les lignes qui se tracent, et de plus le texte affiché n'est pas celui de la variable...

    Ce code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(xPosHoriz1<800){ 
       gotoAndPlay(2); 
    } 
    delete this.onEnterFrame;
    correspond au test de ma boucle qui dessine mes lignes. La scène faisant 800px, lorsque ma première ligne atteint cette longueur, j'arrête le dessin...

    Merci pour ton aide.
    Je te mets mon fla en lien dans mon prochain post.

  4. #4
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    voici une version allégée de mon fla...
    http://perso.numericable.fr/nileberr/essai1.fla
    Merci

  5. #5
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello

    1 - Ce que je comprends pas c'est que tu utilises un onEnterFrame et des frames au niveau de ton scénario ??? le onEnterFrame te permet justement d'utiliser qu'une seule image clé.... et pas plusieurs.. du coup ton code perd toute logique.

    2 - si tu fais un attachMovie faut que tu vires ton clip sur la scène.. le but du attachMovie c'est de poser un clip dynamiquement sur la scène via son nom de liaison quand tu le désires.... pas avant.

    3 - pense qu'un attachMovie permet renvoi une référence (raccourci) vers le clip que tu crées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // ici j'attache sur la scène principale le clip 
    var mc:MovieClip = this.attachMovie("rappel_rotate", "newID",10000);
    trace (mc) ;
    4 - Tu peux donc mettre ton code sur une seule image clé... supprime tes images clés 2,3 et 4... et tape sur le calque "script" de ton image clé 1 :
    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
     
     
    var l:Number = 7 ;
     
    this.createEmptyMovieClip("traitVert2",1);
    this.createEmptyMovieClip("traitHoriz1",2);
    this.createEmptyMovieClip("traitHoriz2",3);
    //lignes du centre
    this.createEmptyMovieClip("traitVert3",4);
    this.createEmptyMovieClip("traitVert4",5);
    this.createEmptyMovieClip("traitHoriz3",6);
    this.createEmptyMovieClip("traitHoriz4",7);
     
    //définition des variables de tracé:
    xPosVert1=40;
    yPosVert1=600;
    xPosVert2=160;
    yPosVert2=0;
     
    xPosHoriz1=0;
    yPosHoriz1=40;
    xPosHoriz2=800;
    yPosHoriz2=100;
     
    xPosVert3=200;
    yPosVert3=130;
    xPosHoriz3=180;
    yPosHoriz3=150;
     
    xPosVert4=680;
    yPosVert4=500;
    xPosHoriz4=700;
    yPosHoriz4=480;
     
    //initialisation du rappel de page
    mcRappel.mcRap.texte="ACCUEIL";
    //mcRappel.swapDepths(31);
     
    this.onEnterFrame=function(){
    //traits dans barres grises
    	//déplacement traits verticaux
    	with(this.traitVert1){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosVert1,yPosVert1);
    		lineTo(xPosVert1,yPosVert1-20);
    	}
    	with(this.traitVert2){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosVert2,yPosVert2);
    		lineTo(xPosVert2,yPosVert+20);
    	}
    //déplacement traits horizontaux
    	with(traitHoriz1){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosHoriz1,yPosHoriz1);
    		lineTo(xPosHoriz1+20,yPosHoriz1);
    	}
    	with(traitHoriz2){
    		lineStyle(0,0xFFFFFF,100);
    		moveTo(xPosHoriz2,yPosHoriz2);
    		lineTo(xPosHoriz2-20,yPosHoriz2);
    	}
    	//incrémentation des variables
    	yPosVert1-=20;
    	yPosVert2+=20;
    	xPosHoriz1+=20;
    	xPosHoriz2-=20;
    	//Traits centraux
    	if(xPosHoriz3<380){
    		with(traitHoriz3){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosHoriz3,yPosHoriz3);
    			lineTo(xPosHoriz3+10,yPosHoriz3);
    		}
    		with(traitVert3){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosVert3,yPosVert3);
    			lineTo(xPosVert3,yPosVert3+10);
    		}
    		with(traitHoriz4){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosHoriz4,yPosHoriz4);
    			lineTo(xPosHoriz4-20,yPosHoriz4);
    		}
    		with(traitVert4){
    			lineStyle(0,0xFFFFFF,100);
    			moveTo(xPosVert4,yPosVert4);
    			lineTo(xPosVert4,yPosVert4-10);
    		}
    		//incrémentation des compteurs
    		xPosHoriz3+=10;
    		xPosHoriz4-=10;
    		yPosVert3+=10;
    		yPosVert4-=10;
    	}
     
    	if(xPosHoriz1 >= 800){
    		delete this.onEnterFrame ;
    	}
     
    }
    PS : il y a moyen d'optimiser tout cela....
    EKA+

  6. #6
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    Salut !
    Merci pour tes remarques qui m'éclairent vraiment.

    En fait je n'avais pas vraiment compris la logique du attachMovie
    Et il est vrai que mon onEnterFrame n'a pas de sens dans ce cas...

    J'essaie le code que tu me proposes et je te tiens au courant!
    Merci beaucoup !

  7. #7
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    Ca marche parfaitement avec attachMovie et l'ensemble du code sur la première image.

    Merci beaucoup,
    a+

  8. #8
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    attachMovie pas compliqué vu que tu utilises un createEmptyMovieClip
    C'est cool que tu es enfin compris Bonne continuation.

    EKA+

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

Discussions similaires

  1. [FLASH MX2004] occurences et textes dynamiques
    Par Dermochelys dans le forum Flash
    Réponses: 13
    Dernier message: 28/11/2006, 14h27
  2. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00
  3. Réponses: 2
    Dernier message: 27/08/2004, 11h57
  4. [FLASH MX] Bouton et texte dynamique
    Par noarno dans le forum Flash
    Réponses: 11
    Dernier message: 21/07/2004, 09h43
  5. [FLASH MX 2004] Affichage texte dynamique
    Par Sun3clipse dans le forum Flash
    Réponses: 8
    Dernier message: 25/06/2004, 16h24

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