Site complet en flash : part 5

Retrouvez ici les topics qui font suite aux cours présentés sur explainMe. Si vous avez des questions par rapport aux cours, des remarques ou encore des infos à ajouter, c'est ici.

Re: Site complet en flash : part 5

Messagepar Muktaditi sur Dim 08 Nov 2009 08:01

merci encore ....
je t'ai envoyé un rar sur logan0015[at]hotmail.com ...
Avatar de l’utilisateur
Muktaditi
Habitué
 
Messages: 56
Inscrit le: Jeu 29 Oct 2009 08:50
Reputation points: 1
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar explainMe sur Dim 08 Nov 2009 21:28

Bon alors ce n'est rein de grave, juste un petit oubli de ta part...

Dans ton XML la structure de tes nœuds 'projet' s'articulent comme ceci :
Code: Tout sélectionner
<projet nomProjet="le nom" typeProjet="le type" imageProjet="adresse/de/l/image.png">
   La description
</projet>


Alors que dans ton code AS, au sein de la fonction chargeProjet(); , pour le chargement de l'image tu as laissé la structure ci-dessous :
Code: Tout sélectionner
//
//--- L'image du projet ---
//
chargeImage(realisationsXML[categorieP].projet[i].@image, projetC.imageProjet);


Seul souci, le @image, qui du coup ne correspond plus à rien puisqu'il faisait référence à l'attribut "image" de mon exemple.

Cependant comme toi tu a modifié le nom de l'attribut en "imageProjet", il faut mettre à jour le ciblage de l'attribut dans ton code ActionScript comme suite :
Code: Tout sélectionner
//
//--- L'image du projet ---
//
chargeImage(realisationsXML[categorieP].projet[i].@imageProjet, projetC.imageProjet);


en résumé, peut importe où tu place tes fichiers, et peu importe aussi comment tu nomme tes balises/attributs, tant que tu pense à les mettre à jour dans ton code de chargement ! ;)

Petite remarque au passage :

Attention car tu as donné le même nom à l'attribut dans ton XML que le nom d'occurrence du clip dans lequel on charge l'image dans flash :

chargeImage(realisationsXML[categorieP].projet[i].@imageProjet, projetC.imageProjet);

Bien que ça marche très bien, j'attire ton attention sur le fait que tu te retrouve ici avec 2 fois la même dénomination dans une seule et même ligne, et pourtant chacune d'entre elle fait référence à un élément différent. Ce qui peut prêter à confusion si reprend ton fichier après quelques temps sans l'avoir ouvert...

Bonne continuation !
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar Muktaditi sur Lun 09 Nov 2009 08:16

heuuuu :? ça ne marche toujours pas...
j'ai a l'image mes boutons, le nom des projets qui s'affichent en cliquant sur les boutons, mais ni d'image, ni de type, ni de descriptions...et donc toujours un problème d'url...

et si j'ai bien compris, dans la phrase :
chargeImage(realisationsXML[categorieP].projet[i].@imageProjet, projetC.imageProjet);

@imageProjet correspond à mon imageProjet="../...png" de mon xml
et
.imageProjet correspond au nom d'occurence imageProjet (du clip vide MC_IMAGE_PROJET contenu dans le clip MC_PROJET, identifiant de liaison clipProjet)

c'est bien ça ??? :?:
Avatar de l’utilisateur
Muktaditi
Habitué
 
Messages: 56
Inscrit le: Jeu 29 Oct 2009 08:50
Reputation points: 1
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar explainMe sur Lun 09 Nov 2009 12:35

Oui c'est bien ça.

Par contre chez moi je n'ai modifié que ça et ça a marché (en même temps je n'ai vérifier que les images).

J'ai également modifié une ligne ou 2 arguments étaient collés dans ton fichier xml, ça viens peut-être de là.

Après j'ai utilisé l'arborescence que tu m'avait indiquée :

dossier du site
----- fichier swf
----- XML (dossier)
---------- fichier XML
----- images (dossier)
---------- creations (dossier)
--------------- image1.png
--------------- image2.png
--------------- ...
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar Muktaditi sur Lun 09 Nov 2009 19:53

j'ai également vu un espace qui manquait dans le xml, et je l'ais corrigé...a prioris ça coince après le nom du projet....
je n'ais pas essayé encore vu que je suis sur un autre pc, mais je me suis rendu compte que je n'avais pas intégré certain caractère... mais je doute que ça puisse venir de là

sinon, j'ai bien typeProjet="...." dans mon xml, et @typeProjet dans le code...
le nom d'occurence du texte dynamique est aussi typeProjet..., même chose pour imageProjet
et j(ai bien donné descriptionProjet en nom d'occurence du texte dynamique... je vais revoir une fois de plus les éventuels espaces manquant dans le xml, mais sinon, je ne comprends franchement pas, je suis ton code, il m'apparait comme totalement logique et j'arrive a suivre, je vais revérifier une fois de plus les différents nom d'occurence et de liaisons... c'est usant.... :cry: , mais il est vrai que cela m'oblige a approfondir ma compréhension du code...

et à ce propos... dans un autre projet, mon menu se compose d'un sous menu (composé de textes et de boutons transparents), se trouvant en position initiale sous le menu...
le menu est lui même composé de textes et de boutons transparent...

Comment déclarer dans le code que le sous menu est invisible quand il est a sa position initiale ???
et comment déclarer que lorsque la souris pointe sur un bouton (en rollover), un filtre soit appliqué ???
Avatar de l’utilisateur
Muktaditi
Habitué
 
Messages: 56
Inscrit le: Jeu 29 Oct 2009 08:50
Reputation points: 1
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar explainMe sur Mar 10 Nov 2009 00:36

Bon autant pour moi je t'ai dit une bêtise :oops: .

Donc tu peux oublié le '../' dans le ciblage vers l'image dans ton fichier XML car étant donné que le contenu du fichier est chargé dans une variable dans le fichier swf, les ciblages doivent partir du swf.

Ensuite pour ton souci au niveau des textes, ton code est correcte, j'ai testé et les textes sont bien récupérés par flash dans le XML.

Pour autant à l'origine moi aussi il ne m'affichait pas les textes (à part les nomProjet). Pour afficher les autres il suffit d'intégrer les caractères de ta police à chaque champ de texte dynamique et ils apparaissent comme par magie (chez moi ça a très bien fonctionné).

Affaire résolue pour ma part donc.

Pour le reste :

Muktaditi a écrit:Comment déclarer dans le code que le sous menu est invisible quand il est a sa position initiale ???

Tu définie une variable qui servira à identifier la position du sous-menu (ex : si la valeur de la variable est 0, cela veut dire qu'il est en position initiale et s'il elle vaut 1, c'est qu'il n'y ai pas).
Comme ça si tu anime ton sous-menu avec une Tween tu peut redéfinir son état à chaque fin d'animation (voir Event.COMPLETE : déjà abordé dans le cours).

Pour afficher/masquer une occurrence, il suffit de modifier sa propriété visible :
monClip.visible = true; ou monClip.visible = false; (code AS3, pour l'AS2 c'est la même chose avec _visible).

Muktaditi a écrit:et comment déclarer que lorsque la souris pointe sur un bouton (en rollover), un filtre soit appliqué ???

Il suffit de déclarer un écouteur sur le MouseEvent.MOUSE_OVER qui lance une fonction chargée d'effectuer une action (le filtre en fait) (déjà vu dans le cours pour l'animation du curseur par exemple ;) ).
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar Muktaditi sur Mar 10 Nov 2009 07:58

pfuuuuuuuuiii!!!!!
ça marche
Alors il fallait donc que les caractères (j'avais mis de l'Arial pourtant) soient intégrés, et que les images soient au même niveau que le fla...

je vais pouvoir continuer...

Concernant mon autre projet, j'y reviendrais dans un nouveau topic... comme je disais je comprend la logique du code, mais ne sait pas comment l'écrire...je vais y travailler et te solliciterai sans doute...

Merci pour ta patience....
Avatar de l’utilisateur
Muktaditi
Habitué
 
Messages: 56
Inscrit le: Jeu 29 Oct 2009 08:50
Reputation points: 1
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar explainMe sur Mar 10 Nov 2009 18:46

Muktaditi a écrit: Alors il fallait donc que les caractères (j'avais mis de l'Arial pourtant) soient intégrés, et que les images soient au même niveau que le fla...


Je suis aussi perplexe que toi sur l'Arial, étant une police système je pensais qu'il n'était pas nécessaire de l'intégrer seulement apparemment Flash n'est pas de notre avis...
J'ai d'ailleurs eu le même souci dans un projet pro cette semaine (comme quoi !). Je me demande si je l'ai rêvé ou bien si ça marchait avant mais plus depuis la version CS4. Bref, l'essentiel est surtout d'avoir trouver le pourquoi du comment.

En revanche pour les images tu n'a pas besoin qu'elles soient au même niveau que le fla, chez moi je les ai mises dans des sous-dossiers comme tu me l'avais expliqué et ça a très bien marché. Seulement l'URL doit être relative au swf et non au xml car le second est chargé dans le premier.
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 5

Messagepar bronzo sur Mar 01 Déc 2009 09:11

Salut.
Je tenais à mon tour à te féliciter pour la qualité de tes tutos.
Malgré toute la pédagogie de ce cours, et après avoir relu les explications de code et fureté sur le forum, je reste bloqué après le préload.
Les boutons ne s'affichent pas et donc ni les images et leurs textes non plus.
Si tu en as l'occasion, je te serai très reconnaissant de déceller la ou les erreurs de mon fichier.
Merci d'avance.
Code: Tout sélectionner
//
//-------------------------------------------------------------------------------------- INITIALISATIONS ---//
//
this.infosChargement.texteCharge.text = "Chargement des projets en cours...";
this.infosChargement._visible = true;
//
//--- Importation de la class Tween ---
//
import mx.transitions.Tween;
import mx.transitions.easing.*;
//
//-------------------------------------------------------------------- Importation de la classe XPathAPI ---//
//
import mx.xpath.XPathAPI;
//
//----------------------------------------------------------------------------------- Chargement du XML ---//
//
Portfolio = new XML();
//
//--- Chargement du fichier XML ---
//
Portfolio.load("portfolio.xml");
//
//--- On ignore les espaces blancs ---
//
Portfolio.ignoreWhite = true;
//
//--- Chargement des valeurs une fois la base chargée ---
//
Portfolio.onLoad = function(success:Boolean) {
   if (success) {
      infosChargement._visible = false;
      chargeProjets("graphisme");
   } else {
      infosChargement.texteCharge.text = "Erreur lors du chargement des projets.";
   }
};
//
//------------------------------------------------------------------------------------------- Fonctions ---//
//
//
//--- Fonction qui charge les projets de GRAPHISME ---
//

    function chargeProjets(categorie:String) {
//
//— On récupère la liste des projets de la catégorie  —
//
       var chemin:String = "/portfolio/"+categorie+"/*";
       var cat:Array = XPathAPI.selectNodeList(Portfolio.firstChild, chemin);
//— Variable qui va permettra de scroller d’un projet à l’autre —
       var index:Number = 0;

       for (i=0; i<cat.length; i++) {
          this.attachMovie("bProjet","bProjet"+i,i);
          this["bProjet"+i].texteBouton.text = i+1;
      //
      //— On place le bouton —
      //
          this["bProjet"+i]._x = 10;
          this["bProjet"+i]._y = 45*i;
          this['bProjet'+i].indexProjet = index;
      //
      //— On définit l’action du bouton —
      //
          this["bProjet"+i].onRelease = function() {
             afficheProjet(this.indexProjet);
          };
//
//— On charge les infos du projet —
//

          sections.attachMovie("clipProjet","clipProjet"+i,i);
          sections["clipProjet"+i]._y = this['bProjet'+i].indexProjet;
          //Nom du projet
          sections["clipProjet"+i].nomProjet.text = cat[i].attributes.nom;
          //Type de projet
          sections["clipProjet"+i].typeProjet.text = cat[i].attributes.typeProjet;
          //Descriptif du projet
          sections["clipProjet"+i].descriptionP = "/portfolio/"+categorie+"/projet[ @nom='"+cat[i].attributes.nom+"']/*";
          sections["clipProjet"+i].descriptionProjet.text = XPathAPI.selectSingleNode(Portfolio.firstChild, sections["clipProjet"+i].descriptionP);
//
//— L’image du projet —
//
          chargeImage(cat[i].attributes.image,sections["clipProjet"+i].imageProjet);
//
//— On incrémente l’index : pour les futurs positions des autres projets —
//
          index += 470;
       }
    }

    function chargeImage(url:String, cible:Object) {
       var loaderImage:MovieClipLoader = new MovieClipLoader();
       loaderImage.loadClip(url,cible);
    }

    function afficheProjet(indexProjet:Number) {
       var deplaceSections:Tween = new Tween(sections, "_y", Strong.easeOut, sections._y, -indexProjet, 1, true);
    }


bronzo
Nouveau membre
 
Messages: 12
Inscrit le: Mar 01 Déc 2009 09:04
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Site complet en flash : part 5

Messagepar explainMe sur Mar 01 Déc 2009 19:16

Bonjour,

Merci pour le compliment :oops: .

Alors :

bronzo a écrit:Les boutons ne s'affichent pas et donc ni les images et leurs textes non plus.


Attention ceci n'est pas nécessairement vrai !

Le fait est que les boutons et les clips contenants les projets sont générés par la même boucle (la boucle for dans la fonction chargeProjets(); ).
Pour autant ce n'est pas parce que les boutons en sont pas générés que les clips ne le seront pas !
Et oui il peut très bien y avoir un petit souci de syntaxe qui fasse que les boutons en soient pas générés alors que les clips le seraient. En revanche ta déclaration peut s'avérer juste si le souci existe à un niveau supérieure (auquel cas effectivement rien ne se passe). Bon là je chipote mais c'est pour qu'il n'y ai pas d'amalgame...

Donc pour l'instant tu n'as pas rien qui est généré apparemment.
Je ne vois rien de choquant dans ton code donc pour l'instant je ne pense pas qu'il soit en cause.

À première vue je dirais qu'il doit y avoir un souci au niveau de la lecture du fichier XML (ou même dans le fichier XML lui-même).

Alors pourrais-tu me dire :
    1. Si tu as des messages d'erreur lorsque tu test ton animation ? ( avec [Ctrl + entrée] ou [Pom + entrée] ).
    2. Si ton fichier XML se nomme bien portfolio.xml et s'il se trouve bien dans le même dossier que ton fichier portfolio.fla (et surtout portfolio.swf une fois que celui-ci est généré) ?
    3. Peux-tu me poster le code de ton fichier XML ?

Merci d'avance.

P.S. : Merci de préciser avec quelle version d'ActionScript vous travaillez, ça nous fera gagner un peu de temps. Ici par exemple j'avais commencé à regarder en AS3 alors qu'il s 'agit d'AS2 (rien de grave mais merci à tous, par avance, de penser à l'indiquer à l'avenir :D ).
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

PrécédentSuivant

Retourner vers Suite des cours

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités

cron