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 8] Utilisation de icons.xml avec content="un swf"


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut [FLASH 8] Utilisation de icons.xml avec content="un swf"
    Bonjour,
    Je débute, mais j'essaie de comprendre et j'avance

    Voilà, j'ai une animation .swf qui fait appel à "icons.xml" dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0"?>
     
    <icons>
    <icon image="images/tvhome.png" tooltip="???" content="Texte a rediger" />
    <icon image="images/tvcd.png" tooltip="???" content="Texte a rediger" />
    <icon image="images/tvdd.png" tooltip="???" content="Texte a rediger" />
    <icon image="images/tvinfo.png" tooltip="???" content="Texte a rediger" />
    <icon image="images/tvstetho.png" tooltip="???" content="Texte a rediger" />
    <icon image="images/tvmail.png" tooltip="???" content="Texte a rediger" />
    <icon image="images/tvconfig.png" tooltip="???" content="Texte a rediger" />
    <icon image="images/tvwarning.png" tooltip="???" content="Texte a rediger" />
     
    </icons>
    Donc grâce à ça, j'ai mes "icones" et leur "tooltip" qui s'affichent dès le début de mon animation .swf !
    La partie "content=", si je la rempli, affiche un texte dans un "texte dynamique" lorsque l'on clic sur les icones.

    Seulement voilà, je voulais savoir s'il était possible, à la place du "content=", de faire appel à d'autres petites animations .swf qui apparaîtraient toujours dans ce "texte dynamique" ?
    Ou alors je devrais enlever mon "texte dynamique" de mon .fla pour y mettre autre chose !!!

    Merci d'avance pour votre aide et vos informations...

  2. #2
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,

    un champs texte dynamique n'est jamais qu'une chaine de caractères, comment veux-tu faire rentrer dans cette chaine autre chose que des caractères?????
    Si tu as une petite animation devant un champs texte il s'agit alors d'une "structure" composée d'une animation et d'un champs. Au niveau flash une structure de ce type n'est pas autre chose qu'un clip.
    Rien ne t'empêche donc de créer un modèle de clip composé d'un .swf chargé dynamiquement et d'un libellé chargé lui aussi dynamyquement, bien sur il te faudra modifier ton fichier source (.fla).
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je te remercie pour tes informations.

    Donc concrètement, pour un newbi comme moi, il faut que je fasse quoi :

    - supprimer dans mon fichier icons.xml (contenu="........") ?
    - supprimer dans mon .fla la zone de "texte dynamique" ?
    - mettre à la place un clip (qui appellera mes .swf pour chaque icones) ?
    - puis modifier dans mon code quelles parties ? (en rouge)

    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
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    import mx.utils.Delegate;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    
    var numOfItems:Number;
    var radiusX:Number = 300;
    var radiusY:Number = 20;
    var centerX:Number = Stage.width / 2;
    var centerY:Number = Stage.height / 2;
    var speed:Number = 0.05;
    var perspective:Number = 130;
    var home:MovieClip = this;
    theText._alpha = 0;
    tableauclip._alpha = 0;
    
    var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
    tooltip._alpha = 0;
    
    var xml:XML = new XML();
    xml.ignoreWhite = true;
    
    xml.onLoad = function()
    {
    	var nodes = this.firstChild.childNodes;
    	numOfItems = nodes.length;
    	for(var i=0;i<numOfItems;i++)
    	{
    		var t = home.attachMovie("item","item"+i,i+1);
    		t.angle = i * ((Math.PI*2)/numOfItems);
    		t.onEnterFrame = mover;
    		t.toolText = nodes[i].attributes.tooltip;
    		t.content = nodes[i].attributes.content;
    		t.icon.inner.loadMovie(nodes[i].attributes.image);
    		t.r.inner.loadMovie(nodes[i].attributes.image);
    		t.icon.onRollOver = over;
    		t.icon.onRollOut = out;
    		t.icon.onRelease = released;
    	}
    }
    
    function over()
    {
    	//BONUS Section
    	var sou:Sound = new Sound();
    	sou.attachSound("sover");
    	sou.start();
    	
    	home.tooltip.tipText.text = this._parent.toolText;
    	home.tooltip._x = this._parent._x;
    	home.tooltip._y = this._parent._y - this._parent._height/2;
    	home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
    	home.tooltip._alpha = 100;
    }
    
    function out()
    {
    	delete home.tooltip.onEnterFrame;
    	home.tooltip._alpha = 0;
    }
    
    function released()
    {
    	//BONUS Section
    	var sou:Sound = new Sound();
    	sou.attachSound("sdown");
    	sou.start();
    	
    	home.tooltip._alpha = 0;
    	for(var i=0;i<numOfItems;i++)
    	{
    		var t:MovieClip = home["item"+i];
    		t.xPos = t._x;
    		t.yPos = t._y;
    		t.theScale = t._xscale;
    		delete t.icon.onRollOver;
    		delete t.icon.onRollOut;
    		delete t.icon.onRelease;
    		delete t.onEnterFrame;
    		if(t != this._parent)
    		{
    			var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
    			var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
    			var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
    		}
    		else
    		{
    			var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
    			var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
    			var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,120,1,true);
    			var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,300,1,true);
    			var tw5:Tween = new Tween(tableauclip,"_alpha",Strong.easeOut,0,100,1,true);
    			var tw6:Tween = new Tween(tableauclip ,"_x",Bounce.easeOut,1000,500,20,false);
    			var tw7:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
    			var tw8:Tween = new Tween(theText,"_x",Bounce.easeOut,1000,250,20,false);
    			theText.text = t.content;
    			var s:Object = this;
    			tw.onMotionStopped = function()
    			{
    				s.onRelease = unReleased;
    			}
    		}
    	}
    }
    
    function unReleased()
    {
    	//BONUS Section
    	var sou:Sound = new Sound();
    	sou.attachSound("sdown");
    	sou.start();
    	
    	delete this.onRelease;
    	var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
    	var tw2:Tween = new Tween(theText ,"_x",Regular.easeOut,250,-1000,20,false);
    	var tw3:Tween = new Tween(tableauclip ,"_x",Regular.easeOut,500,-1000,20,false);
    	for(var i=0;i<numOfItems;i++)
    	{
    		var t:MovieClip = home["item"+i];
    		if(t != this._parent)
    		{
    			var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
    			var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
    			var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
    		}
    		else
    		{
    			var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
    			var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
    			var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
    			var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
    			tw.onMotionStopped = function()
    			{
    				for(var i=0;i<numOfItems;i++)
    				{
    					var t:MovieClip = home["item"+i];
    					t.icon.onRollOver = Delegate.create(t.icon,over);
    					t.icon.onRollOut = Delegate.create(t.icon,out);
    					t.icon.onRelease = Delegate.create(t.icon,released);
    					t.onEnterFrame = mover;
    				}
    			}
    		}
    	}
    }
    
    
    function moveTip()
    {
    	home.tooltip._x = this._parent._x;
    	home.tooltip._y = this._parent._y - this._parent._height/2;
    }
    
    xml.load("icons.xml");
    
    function mover()
    {
    	this._x = Math.cos(this.angle) * radiusX + centerX;
    	this._y = Math.sin(this.angle) * radiusY + centerY;
    	var s = (this._y - perspective) /(centerY+radiusY-perspective);
    	this._xscale = this._yscale = s*100;
    	this.angle += this._parent.speed;
    	this.swapDepths(Math.round(this._xscale) + 100);
    }
    
    this.onMouseMove = function()
    {
    	speed = (this._xmouse-centerX)/7000;}

    Il faut que je continue à créer 1 .swf par icone contenant leur texte et mise en page (ils seront appelés en cliquant sur l'icone respectif).
    Ou alors je crée 1 clip par icone contenant leur texte et mise en page (et ils seront appelés en cliquant sur l'icone respectif).

    Quelle méthode est la mieux afin d'afficher mon texte après avoir cliquer sur mes icones ?


    Merci encore, j'espère m'en sortir avec tout ça

  4. #4
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    pour un "newbi" je trouve que tu manipules du code qui commence à être plutôt compliqué!
    A ce stade (sans le source notament) je suis incapable de te répondre clairement, j'ai l'impression qu'il faut en faite modifier le clip appelé "item" et éffectivement remplacer le champs texte par un clip vide dans lequel tu chargeras ton icon.swf (dont les références seront dans "content=". Cependant il y a une autre méthode mais je ne connais pas les détails de ton projet pour être plus précis, c'est d'avoir simplement ces icons comme clips dans ta bibliothéque et de créer l'icone nécessaire simplement en testant la valeur de tootip ou en précisant l'icon nécessaire dans "content=".
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Désolé, en effet, j'avais oublié de préciser qu'en tant que newbi, c'était un code que j'ai récupéré il y a quelques jours sur le projet de faire un carroussel en flash.
    J'ai réussi à comprendre quelques lignes de code et en modifier/rajouter pour faire la présentation à ma manière !!!

    Donc je joins mon .fla à ce message.

    En résumé du projet, j'ai un carroussel composé d'icones qui tournent au milieu de mon animation Flash.
    Flash va chercher mes icones et les affiches à l'écran grâce à icons.xml !!
    (ce qui, avec ta 2ème méthode serait inutile, puisque tout serait donc contenu dans ma bibiothèque Flash. donc plus de .xml et plus de dossier "images" ... à voir oui)

    Ce qu'il me reste à faire, c'est la suite ...
    Que ce passe-t-il quand on clique sur un icone ... afficher un texte ...

    A l'origine, ce texte était dans icons.xml avec content="......"

    Mais comme je souhaite faire ma propre présentation/mise en page de ce texte, ça ne me convient pas.

    J'ai fait un test en créant un .swf !!

    Exemple :
    -j'ai mon carroussel,
    -on clique sur l'icone "Accueil", par exemple
    -le texte correspondant et qui doit s'afficher est formaté dans un autre fichier .swf dont la présentation/mise en page est faite par un fichier.css

    Si je résous ce problème, je pourrais utiliser cette meme méthode pour ensuite faire appel à un formulaire mail en flash, quand on clique sur l'icone "Contact".

    J'espère t'avoir aiguillé

  6. #6
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    apparemment tu avais parfaitement identifié le code à modifier (en rouge) dans ton post précédent. Il faut donc remplacer le champ texte "theText" par un clip vide nommé dans mon exemple "clipVide" placé au même endroit que le texte dynamique et tu utilises loadMovie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    ...
    var tw7:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
    			var tw8:Tween = new Tween(theText,"_x",Bounce.easeOut,1000,250,20,false);
    			//theText.text = t.content;
    			clipVide.loadMovie("images/tvcd.png");
    			var s:Object = this;
    ...
    ...
    si tu fais juste ce test tu charges "tvcd.png" en cliquant sur un icon. Tu peux très bien te servir de t.content pour récupérer le nom exact du .swf que tu vas créer pour chaque icon et ça devrait marcher.

    Désolé d'avoir été si long à comprendre et de ne pas t'avoir tellement aidé.

    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Sisi, je te remercie pour le temps que tu passes.

    Si je fais juste le test que tu m'as indiqué, en changeant juste la portion de code :
    - j'ai un "text field" qui apparaît au lancement de l'animation, alors qu'il s'agit de l'ancien texte dynamique.
    - et quand je clique sur l'icone "tvcd.png", il va bien me chercher mon image pour me l'afficher (maintenant, il faut que je gère la disposition, car il n'est pas au bon endroit).

    Donc, ce que j'ai fait, c'est que je veux afficher un texte en .swf correspondant à chaque icone du carroussel, donc j'ai modifié comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var tw7:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
    			var tw8:Tween = new Tween(theText,"_x",Bounce.easeOut,1000,250,20,false);
    			//theText.text = t.content;
    			clipVide.loadMovie("accueil.swf");
    			var s:Object = this;
    Donc pour le moment, c'est le meme fichier "accueil.swf" qui est appelé quand je clique sur tous les icones.
    Et puis, il reste afficher en permanence !!!


    EDIT: autant pour moi, je n'avais pas changer TOUT les "theText" par "clipVide", donc pour l'apparition et la disparition de "accueil.swf", c'est fait.

    Donc maintenant, il faut que je regarde comment ce "clipVide" peut aller me chercher TOUT les petites animations .swf correspondant à mes icones quand je clique dessus !!!

  8. #8
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    A priori tu vas créer autant de fichiers .swf différents qu'il y a d' item différent donc tu pourras les associer au niveau du fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t.content = nodes[i].attributes.content;
    en écrivent dans content le non du swf correspondant (en fait le nom du chemin complet dans mon exemple j'imagine les swf dans un répertoire icons...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0"?>
     
    <icons>
    <icon image="images/tvhome.png" tooltip="???" content="icons/tvhome.swf" />
    <...>
    <...>
    et enfin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clipVide.loadMovie(t.content);
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    PFFFFFFFFFFFFFFFFFFF ...

    Je te remercie vraiment beaucoup !!!

    Je venais tout juste de mettre mes .swf dans mon .xml !!

    Pour le reste, c'est vraiment balo, car en faite tu m'as juste fait changer mon "texte dynamique" par un "clip", ce qui est logique.
    Changer tous mes "theText" par "clip..." et ajouter une ligne de code "loadMovie" ...

    C'était tout con, honte à moi !!

    J'ai plus qu'à créer mes .swf et regarder la positionnement du "clipVide" car il ne se met pas au meme endroit que l'ancien "texte dynamique".

    Merci beaucoup.
    Tu n'as pas un site pour te faire de la pub ?

    Je ne t'embête plus ... pour aujourd'hui

    Bon aprem

  10. #10
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    content de t'avoir aidé...
    pense au tag
    bonne continuation.
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    ahhh siii ... désolé ... lol ... 1 question !!

    mes petites animations .swf apparaissent quand je clique sur mes icones, mais elles doivent également repartir en recliquant sur mes icones afin de revenir à mon carroussel ...

    hors, les animations restent à l'écran !!!

    à quel endroit je dois "décharger" les animations ?

    Merci


    EDIT: OUBLIESSSS ... dès fois je suis un boulet, j'avais oublié des caractères ...

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut, je suis tombé par hasard sur cette discussion... et ai déjà utuliser ce code pour des fins personnelles et non commerciales.

    mais tu sais, tu peux demander à Lee Brimlow directement, étant le créateur du tutoriel...

    http://www.gotoandlearn.com/

    il a un forum aussi et tout et tout ^^

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2013, 20h41
  2. Utiliser des données XML avec Excel ?
    Par sky1989 dans le forum Excel
    Réponses: 3
    Dernier message: 29/03/2012, 21h48
  3. parser une reponse xml avec content-type="text/html"
    Par roro06 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 15/10/2010, 11h30
  4. [DOM][JAVASCRIPT]Utilisation de l'xml avec html
    Par Hello_World dans le forum APIs
    Réponses: 9
    Dernier message: 14/10/2010, 14h37
  5. Réponses: 15
    Dernier message: 23/03/2009, 16h07

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