Forum Wisibility

WEB => Flash => Discussion démarrée par: RMistral (Wisi) le décembre 01, 2007, 17:00:14 pm

Titre: AS2 COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 01, 2007, 17:00:14 pm
Bonjour,



Je vous propose ici une réflexion sur l'architecture d'un site Full Flash. Il ne s'agit pas d'un tutorial mais d'une comparaison, sur la base d'un même site factice, sur les 3 méthodes de conception.

Cette réflexion s'adresse à des gens ayants déjà le vocabulaire propre à Flash et une petite expérience avec le logiciel. (Graphiste non développeur ou développeur débutant, créateur de bannière, créateur micro site full Flash, créateur de jeux...)

Lisez les pages à l'intérieur des sites exemples pour comprendre comment ils sont architecturés. N'hésitez pas à prendre des notes et à me solliciter pour un complément d'information.

Architecture Mono Fichier (http://www.aexpmil.com/wisibility/LotusBleu/Site_Mono/LotusBleu.html)

Cette conception est la suite logique pour un développeur habitué à faire des bannières en Flash.

 C'est la plus mauvaise façon de réaliser un site Full Flash.

Le site factice le démontre amplement. Sont poids est de 184Ko dans un seul fichier pour 5 pages. Il n'y a pas de barre de préload car j'ai pas trop le temps :P alors un peu de patience au téléchargement.

Architecture Multi Niveaux (http://www.aexpmil.com/wisibility/LotusBleu/Site_level/LotusBleu.html) (Pensez à déplacer les "barres niveau" pour visualiser clairement l'architecture du site.)

Ici le même site est scindé en X fichiers SWF. Les différents éléments s'empilent sur des Niveaux. Chaque fichiers est plus petit et ne demande donc pas de barre de préload. Cette méthode est à choisir si vous êtes débutants car elle requiert peu de code et est très simple à mettre en œuvre. De plus associé avec le composant loader elle permet l'externalisation des photos. Avec un minimum de code supplémentaire il est aussi envisageable d'externaliser le texte dans des fichiers textes.

Architecture MovieClip (A venir en fonction de vos réactions et de vos questions...)

Cette organisation s'adresse à des gens ayants la maitrise des niveaux et souhaitant faire des sites plus ambitieux. Elle requiert une bonne compréhension des bases de la programmation ActionScript. Ici avec une connexion à une base de données (Access, My SQL) les sites dynamiques, marchands, sont réalisables.

C'est la meilleure méthode pour faire un site Full Flash.



Et après ? (A venir en fonction de vos réactions et de vos questions...)

Nous entrons dans le domaine des spécialistes de Flash. Création de classe d'objet, travail en équipe, gros voir très gros projet.... Vous devez avoir acquis les notions de POO (programmation orienté objet). Et la gestion d’une base de données n’est plus un problème pour vous.



Maintenant à vous de juger et bonne lecture ..........
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 02, 2007, 14:01:42 pm
C'est clair, la deuxième solution me parait plus facile a gérer (je ne dis pas plus facile à faire :/).
En ayant toutes les parties séparer, j'imagine que cela est plus simple par la suite, pour faire des mises a jour, ou transformation sur certaines pages, etc …

Mais j'imagine aussi, GROS travail de préparation !!

J'attends la suite :)

/Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 02, 2007, 16:58:22 pm
Bonjour,

Le travail préparatoire pour l'architecture multi niveaux consiste principalement à une élaboration sous la forme d'un gabarit sous Photoshop. Ouvrir un nouveau fichier Photoshop à la taille du futur site puis dessiner sur des calques les différents niveaux  de manière sommaire pour les éléments vectoriels réalisable directement sous Flash, plus détaillé voir complètement pour les autres éléments. (L’idéal est d’avoir une tablette).
Le principe à respecter est :

Le niveau 0 (premier niveau chargé) contient les éléments fixes du décor du site.

Le niveau 1 lui est réservé à l'affichage des pages de contenu. Il est recommandé de ne pas utiliser le niveau 2 pour le cas ou l'affichage d'une fenêtre est nécessaire. (En cas de doute il suffit de travailler de 10 en 10. Niveau 0, niveau10, niveau 20 .... Il est alors possible d'utiliser les niveaux intermédiaires en cas de besoin. Niveau 11, niveau12 etc...)

Le niveau 2 ou 3 contient éventuellement un premier plan.

Enfin le niveau 4 contient le menu de l'application.

Une fois le gabarit réalisé, il faut par niveau raisonner sur papier en termes de graphique, movieclip, composant pour définir le contenu de la bibliothèque de chaque niveau.

L'étape suivante est la réalisation pratique sous Flash. Il faut ouvrir autant de nouveau fichier que de niveau puis définir la même dimension de scène pour chacun.

A l’aide des règles et des traits de construction il faut alors créer ou/et importer les différents éléments constituant chaque niveau et les mettre en place.

Enfin écriture des lignes de codes dans chaque niveau toujours sur un calque à part sur la scène et jamais directement dans un MovieClip ou un composant.


Je vous conseille de réaliser au moins 5 sites avant d'envisager de passer à la technique suivante.
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Lux le décembre 03, 2007, 17:27:19 pm
Excellent! cet excellent tuto tombe a pique!
Je suis sur le point de commencer mon premier site "Full flash"! Mais je suis un pur amateur^^

Merci pour les conseils ! ;)
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Zeb le décembre 04, 2007, 10:11:20 am
Bravo RMistral pour cette petite mise au net, moi qui suis un graphiste non (mais essaye de le devenir un peu) développeur, c'est très clair et instructif.

Et j'attends avec impatience, le niveau 3 et 4 !
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 14, 2007, 23:31:33 pm
Bonjour,

Je suis en train d'essayer ce que tu proposes.

Tu dis :
"Les deux reproches principaux sont l'éclatement du code AS dans chaque fichier SWF …"

Mais ne serait t'il pas possible d'utiliser un fichier AS indépendant, en mettant comme code sur le fichier de base :

code:
#include "monbofichier.as"Et ainsi se trouver avec un seul fichier pour le code ?

/Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 15, 2007, 05:25:08 am
Bonjour,


Le problème est que Flash fonctionne en mode asynchrone. C'est-à-dire qu’entre le moment où tu demande quelque chose par exemple par un loadMovieNum et le moment ou le fichier demandé est disponible il se passe un certain temps dont tu n’as pas la maitrise. Le temps est fonction du poids du fichier demandé et du débit Internet qui par nature est variable en permanence.

Prenons un exemple :

Imaginons le fichier menu.swf contenant l’ensemble des boutons de l’application et décor.swf contenant le support graphique du site.

Si j’appelle à partir du fichier décor.swf par loadMovieNum le menu et que je programme mes boutons de menu dans décor.swf juste après l’appel à menu.swf, j’explique à Flash ce qu’il doit faire sur des boutons qui n’existe pas encore. Donc quand menu.swf est enfin disponible mes boutons ne fonctionnent pas.

C’est un peu le même genre d’erreur que je vois régulièrement sur le forum quand les Wisinautes demandent de l’aide sur des boutons. Très fréquemment, le code est inscrit sur une image clé avant l’image clé contenant les boutons. De fait même si le code est bon il ne fonctionne pas.

Le principe est que je ne peux coder que des MC disponibles sur la scène sur la même image clé que le code ActionScript chaque MC devant avoir un nom unique.

Donc pour ne pas rencontrer un tel cas de figure est vue que je n'ai pas la maitrise du temps de chargement, du moins dans cette organisation, je suis obliger de mettre le code relatif à tel ou tel MC directement dans le fichier contenant ce MC sur la même image clé sur un calque ActionScript indépendant sur la scène.


Bon code...
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 15, 2007, 10:06:02 am
Oui, je comprends le cheminement.
Un fichier AS réunissant tout le code … Ouais, ben nan, c'est déjà assez compliqué comme ça !!

Dans ton exemple en bas de page a droite, tu as placé un lien (mailto) qui je pense doit être un bouton à la base.
Celui ci change de couleur au passage de la souris.

Je sais mettre un lien a l'intérieur d'un texte, mais comment faire pour que celui ci change d'aspect au passage de la souris ?

Merci

/Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 17, 2007, 06:19:57 am
Bonjour,


Il s'agit d'un texte de quel type ?

Externe ou interne au format html

Interne dynamique

Interne statique
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 17, 2007, 06:30:11 am
Bonjour,

Interne au format HTML

Je suis d'ailleurs en train de regarder comment fonctionne le CSS dans un texte html avec Flash.
Je suis en train de suivre l'exemple proposé dans la notice de Flash, c'est vraiment loin d'être clair (pour moi).

Si quelqu'un a tenté l'aventure, ça m'intéresserai de voir comment son monté les fichiers !!
Parce que la, pataugeage puissance 5 ! :(

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 17, 2007, 20:13:37 pm
Encore moi !!!!

Bon voilà comment résoudre ton problème.

Le principe :

L'idée est de charger dans un objet spécialisé "StyleSheet" une feuille de style CSS externe puis d'appliquer sur un texte html les styles de cette feuille d'une manière traditionnelle html.

L'organisation :

Un fichier texte nommé : style.css avec les styles suivants :

p {  
color: #000000;
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;  display: inline;
}

a:link {  
color: #0000FF;
text-decoration: underline;
}

a:hover{
color: #FF0000;
text-decoration: none;
}

.entete{
color: #0000FF;
font-family: Arial,Helvetica,sans-serif;
font-size: 18px;
font-weight: bold;
display: block;
}
.signature {
color: #666600;
font-style: italic;
font-weight: bold;
display: inline;
}
Le fichier style.css est enregistré dans le même dossier que le fichier Flash dans cet exemple.

Fichier Flash

Une image clé avec :

Un calque contenant une zone de texte dynamique multiligne nommé : ZnTexte
Un calque contenant une zone de texte dynamique simple ligne nommé : alerte
Un calque ActionScript contenant le code suivant :

//Texte html interne
texteExemple = "

Utiliser les feuilles de style

";
texteExemple += "

par RMistral
";
texteExemple += "1 - Créez une feuille de style externe comme en html
";
texteExemple += "2 - Dans le fichier Flash ecrire le code ActionScript
";
texteExemple += "3 - Et voilà ça fonctionne
";
texteExemple += "Aexpmil Studio

";
//importation de la classe externe feuille de style
import TextField.StyleSheet;
//Création d'une occurrence de feuille de style
var Style:StyleSheet = new StyleSheet();
//fonction de chargement de la feuille de style externe
Style.onLoad = function(disponible:Boolean):Void  {
if (disponible) {
ZnTexte.styleSheet = Style;
ZnTexte.text = texteExemple;
} else {
alerte.text = "La feuille de style n'est pas disponible";
}
};
//Appel de la feuille de style
Style.load("style.css");
Et voilà le travail !!! Merci qui ;)
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 18, 2007, 00:50:26 am
Merci MIMI,

Chez moi sa marche bien, seulement je peux voir le résultat exclusivement en ligne .

Voili

Bon ben moi, je vais aller voir mes lecteurs audio ;)

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 18, 2007, 11:52:28 am
Coucou,


Normalement le code fonctionne même en local. Bien sur il faut que le fichier Flash soit enregistré avant d'essayer sinon un fichier temporaire est créé mais pas dans le même dossier que le fichier style.css. Dans un tel cas effectivement cela ne fonctionne pas.
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 18, 2007, 18:58:37 pm
Ben écoute !!!

Il y a un truc qui m'étonne, est ce que chez toi le lien est actif ? (celui dans ton exemple).

Car même, en ayant fait un copier/coller de tout les codes CSS et As que tu propose, tout fonctionne sauf que le lien n'est pas actif en ligne.

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 19, 2007, 07:13:47 am
Salut,

Bon ben après vérification je me suis trompé dans le code pour le lien. :(

Remplace :

ZnTexte.text = texteExemple;par :
ZnTexte.html = true;
ZnTexte.htmlText = texteExemple;
La première ligne indique que la zone de texte doit être traitée avec rendu html la seconde que le texte est du texte contenant des balises html.

bon courage...
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 19, 2007, 08:20:19 am
C'est pas grave.

Merci de me rassurer :)

Effectivement tout rentre dans l'ordre ainsi. Excellent !!

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 26, 2007, 17:46:31 pm
Bonjour,

Je pense revenir un peu au thème principale de ce post.

Je souhaites dépanner un ami pour ces pages web, celles ci ont été faitent en html avec des animes  en flash. De ces animes, nous avons quasiment que les swf (et donc pas tout les fichiers en fla).

Sur les pages je souhaites garder la base en html, tout en conservant le menu de navigation sur la gauche. Dans la parti contenu, je souhaite y mettre "que" du flash. Cette partie fait 646 px de large, la hauteur varie suivant le contenu.

Voila, le décor est planté.

Voici donc comment je vois les choses, donc si il y a plus simple, n'hésitez pas a me le dire, parce que c'est un peu galère la !!

Je démarre a partir de cette partie centrale de 646 px de large.

Donc dans ma page en haut je me trouve avec une anime pour le bandeau (swf) et juste en dessous une petite anime de titre (swf). Ces deux anime, je les importe dans un fichier fla dis "principal", ainsi :

code:
banniere.loadMovie("template/disco.swf");
albums.loadMovie("template/albums.swf");
Sur cette page, je dois présenter des albums (CD Audio) sur une parti, et en seconde parti , présenter qq extraits musicaux.

Pour la partie présentation d'album je créé un fichier fla de 646 / 220 px, dans lequel je mets la couv en png, plus l'import de l'anime du titre (swf) ainsi que le texte qui correspond a l'album (merci Rmistral).
le code:

anime.loadMovie("disco/serious.swf")

//Texte html interne
texteExemple = "

9 titres hard bop, et un bonus track

";
texteExemple += "

avec en invité Mr Di Battista.
";
texteExemple += "
Pour recevoir ce CD : Envoyez moi un mail (18 euros port inclus)
";
texteExemple += "ou allez sur le site de CRISTAL RECORDS

";
//importation de la classe externe feuille de style
import TextField.StyleSheet;
//Création d'une occurrence de feuille de style
var Style:StyleSheet = new StyleSheet();
//fonction de chargement de la feuille de style externe
Style.onLoad = function(disponible:Boolean):Void  {
    if (disponible) {
        CdTexte.styleSheet = Style;
CdTexte.html = true;
        CdTexte.htmlText = texteExemple;
    } else {
        alerte.text = "La feuille de style n'est pas disponible";
    }
};
//Appel de la feuille de style
Style.load("styles_cd.css");
Et ceci pour chaques albums.
Puis je me fais un petit fichier swf.
J'ai pour projet de faire la même chose pour les partie écoute.

Ensuite, sur mon fla principal, je lui ajoute en import, les swf de mes présentations de CD.
ce qui donne :
banniere.loadMovie("template/disco.swf");
albums.loadMovie("template/albums.swf");

serious.loadMovie("disco/CD_serious.swf");
music.loadMovie("disco/CD_musinmus.swf");
Et par la suite, je mettrai aussi mes lecteurs audio.

Ouff

J'aimerai donc savoir si il y a plus simple … ou pas ?

Merci

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 27, 2007, 18:27:48 pm
Bonjour,

Oula ma pauvre tête !!!!

Si je comprends bien le but est à partir d'un fichier nommé principal d'appeler les autres fichiers  déjà réalisés puis de les mettre en place sur la scène ?

Si oui attention à loadMovie. En ligne il n'y à aucun moyen de contrôler le téléchargement. Dans Flash nous sommes en mode asynchrone c'est-à-dire qu’entre le moment ou je demande quelque chose et le moment le quelque chose est disponible mon animation continue.

Il faut pourtant savoir si le MC untel est disponible pour pouvoir le positionner en x et y ou modifier sa taille ou n'importe laquelle des propriétés.

Si tu essaye par exemple de placer les MC de réception de tes loadMovie par MC._x= xx et MC._y= xx avant qu’ils soient disponible tes instructions ne seront pas prise en compte. En local pas de problème ils sont disponible instantanément mais en ligne tes ordres arriverons trop tôt en fonction des fluctuations du débit.....

C’est pour cela qu’il vaut mieux utiliser une occurrence de l'objet MovieClipLoader pour avoir un contrôle sur l'ensemble du process de téléchargement. Regarde mon post sur le sujet sur le Forum Wisibility (http://www.wisibility.com/forums/viewtopic.php?id=1056)

Si le MovieClipLoader te semble trop complexe utilise loadMovieNum, réparti  ton code dans chaque swf, et prend garde d'avoir toujours la même taille pour chaque fichier swf à charger. Cela empêche tout les problèmes que je viens d'évoquer.

Quand il y à des opérations répétitives il est possible d'alléger le code en passant par des boucles. Mais bon commence à régler la récupération des fichiers externes et après nous verrons...

Bon courage...
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 28, 2007, 10:18:49 am
Citation de: RMistral
Bonjour,

Oula ma pauvre tête !!!!

Si je comprends bien le but est à partir d'un fichier nommé principal d'appeler les autres fichiers  déjà réalisés puis de les mettre en place sur la scène ?
Oui, et ma tête à moi aussi … elle fume !!

Oui, pour plusieurs raison dont :
1 les animes des pages existante sont en swf et nous n'avons pas les fla.
2 je souhaites avoir sur le meme fichier swf tout les lecteurs audio de façon qu'ils soient gérable (au stop/play) comme le code que tu m'as donné dernièrement.

Citer
Si oui attention à loadMovie. En ligne il n'y à aucun moyen de contrôler le téléchargement. Dans Flash nous sommes en mode asynchrone c'est-à-dire qu’entre le moment ou je demande quelque chose et le moment le quelque chose est disponible mon animation continue.

Il faut pourtant savoir si le MC untel est disponible pour pouvoir le positionner en x et y ou modifier sa taille ou n'importe laquelle des propriétés.

Si tu essaye par exemple de placer les MC de réception de tes loadMovie par MC._x= xx et MC._y= xx avant qu’ils soient disponible tes instructions ne seront pas prise en compte. En local pas de problème ils sont disponible instantanément mais en ligne tes ordres arriverons trop tôt en fonction des fluctuations du débit.....

C’est pour cela qu’il vaut mieux utiliser une occurrence de l'objet MovieClipLoader pour avoir un contrôle sur l'ensemble du process de téléchargement. Regarde mon post sur le sujet sur le Forum Wisibility (http://www.wisibility.com/forums/viewtopic.php?id=1056)
Je vais lire tout ça, et je vais mettre en ligne ce que j'obtiens, pour que vous puissiez voir, car a expliquer comme ça c'est pas facile.

Citer
Si le MovieClipLoader te semble trop complexe utilise loadMovieNum, réparti  ton code dans chaque swf, et prend garde d'avoir toujours la même taille pour chaque fichier swf à charger. Cela empêche tout les problèmes que je viens d'évoquer.

Quand il y à des opérations répétitives il est possible d'alléger le code en passant par des boucles. Mais bon commence à régler la récupération des fichiers externes et après nous verrons...
OK, je vais déjà voir comme ça.

Citer
Bon courage...
Oula , merci

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 29, 2007, 18:43:32 pm
Bonsoir,

Voila, je mets ici (http://www.delphimuz.com/test/) un exemple de ce que je cherche a faire.

Dans cette page, la banniere, le titre "albums", ainsi que les deux albums qui suivent sont importés a la façon dont tu me parle au dessus MovieClipLoader.

Par contre, pour chaque présentation d'album.
C'est un swf dans lequel il y a, une photo, une anime et du texte. J'ai utilisé encore le loadMovie pour les faire.
Faut t'il utiliser de préférence MovieClipLoader quoiqu'il arrive ?

Maintenant, je vois un certain avantage a ça, car le jour ou je devrai changer ou retirer un album, il me suffira de retirer que le swf en question.

Merci de votre avis.

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le décembre 30, 2007, 07:16:43 am
Bonjour Chrys,

Sympathique cette présentation !!!

Attention toutefois à l'allongement de la liste des albums. Les boutiques sur Internet obligent souvent l’internaute à utiliser l’ascenseur pour aller chercher un produit. Moi  je n’aime pas prendre l'ascenseur sur un site pendant des kilomètres (je ne t’impose pas mon point de vue).

Essaye peut-être de réfléchir à une autre approche visuelle si tu pense que cette liste doit augmenter. Pourquoi ne pas penser à une navigation par page sur la base de 4 albums par page ? Je pense à tord ou à raison qu’un site tableau de bord, c'est-à-dire tenant dans un espace de 900*600 pixels, est plus ‘‘navigable’’ qu’un site classique à développement vertical.

Si la liste reste courte alors là le problème disparait de lui-même.

Pour la partie technique oui le MovieClipLoader en AS2 est la meilleure solution à utiliser sans modération sur l’ensemble des données externes.

Sur un tel site je te conseille d’architecturer ton code de la manière suivante :

Un MovieclipLoader pour charger les images et les swf externes, un loadVars pour charger des fichiers textes externes contenant le descriptif de l’album et une fonction  boucle Album.

Comme la structure de chaque album est identique cette boucle est chargée de construire la fiche de l’album à la volée.


Un petit peu d’algorithme :

Boucle :
        Faire album fois
            Création à la volée d’un MC vide (createEmptyMovieClip) nommé Album 1,2,3 en profondeur 1,2,3….
            Création à la volée dans Album x d’un MC photo nommé Photo (createEmptyMovieClip) en profondeur 0
            Charge avec MovieclipLoader la photo externe nommé photoX.jpg dans AlbumX.Photo (loadclip)
            Création à la volée dans le MC Album x d’une zone de texte (createTextfield) nommée Descriptif en profondeur 1
            Charge le fichier texte externe AlbumX.txt dans la zone de texte Descriptif (load)
           Applique la feuille de style sur la zone texte
           Positionne à l’écran le MC Album X
Fin de boucle

En début de code il suffit d’appeler cette fonction en lui passant en paramètre le nombre maxi d’album à gérer.

Organistion générale :
Les photos doivent être dans un même dossier et doivent être nommées Photo1.jpg, Photo2.jpg.....Photox.jpg
Les descriptifs doivent être dans un même dossier et doivent être nommés Album1.txt, Album2.txt....Albumx.txt

A la racine des 2 dossiers précédent le fichier swf contenant le code.


Bon courage à toi et bravo pour cet excellent début...
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le décembre 30, 2007, 14:18:28 pm
Bonjour RMistral,


Citation de: RMistral
Bonjour Chrys,

Sympathique cette présentation !!!
Merci, ce n'est pas 100% de moi.

Citer
Attention toutefois à l'allongement de la liste des albums. Les boutiques sur Internet obligent souvent l’internaute à utiliser l’ascenseur pour aller chercher un produit. Moi  je n’aime pas prendre l'ascenseur sur un site pendant des kilomètres (je ne t’impose pas mon point de vue).

Essaye peut-être de réfléchir à une autre approche visuelle si tu pense que cette liste doit augmenter. Pourquoi ne pas penser à une navigation par page sur la base de 4 albums par page ? Je pense à tord ou à raison qu’un site tableau de bord, c'est-à-dire tenant dans un espace de 900*600 pixels, est plus ‘‘navigable’’ qu’un site classique à développement vertical.

Si la liste reste courte alors là le problème disparait de lui-même.
Je partage complètement ce point de vue, d'ailleurs j'avais fait, un petit site pour un Luthier ou justement, je me refusais d'avoir des ascenseurs, mais a calé les pages de façon a les voir sans devoir monter ou descendre.
D'un autre côté, pour celui-ci, il ne s'agit pas d'un site marchand, il y aura plus ou moins quatre albums en présentation et quelques extraits audio.

Citer
Pour la partie technique oui le MovieClipLoader en AS2 est la meilleure solution à utiliser sans modération sur l’ensemble des données externes.

Sur un tel site je te conseille d’architecturer ton code de la manière suivante :

Un MovieclipLoader pour charger les images et les swf externes, un loadVars pour charger des fichiers textes externes contenant le descriptif de l’album et une fonction  boucle Album.

Comme la structure de chaque album est identique cette boucle est chargée de construire la fiche de l’album à la volée.

Un petit peu d’algorithme :

Boucle :
        Faire album fois
            Création à la volée d’un MC vide (createEmptyMovieClip) nommé Album 1,2,3 en profondeur 1,2,3….
            Création à la volée dans Album x d’un MC photo nommé Photo (createEmptyMovieClip) en profondeur 0
            Charge avec MovieclipLoader la photo externe nommé photoX.jpg dans AlbumX.Photo (loadclip)
            Création à la volée dans le MC Album x d’une zone de texte (createTextfield) nommée Descriptif en profondeur 1
            Charge le fichier texte externe AlbumX.txt dans la zone de texte Descriptif (load)
           Applique la feuille de style sur la zone texte
           Positionne à l’écran le MC Album X
Fin de boucle

En début de code il suffit d’appeler cette fonction en lui passant en paramètre le nombre maxi d’album à gérer.
Oula !! je crois que tu me surestime !! Je comprends grossièrement le principe qui me semble encore plus simple que ce que j'ai fait.
En fait, cela créé un template des présentations d'albums, et chaque template va chercher les infos dans les dossiers photo et texte .
Pour le texte, j'ai fait strictement ce que tu m'indiques un peu plus haut avec appel de la css. Donc le texte en interne dans mon fla.
Dans ton mode préparatoire de la boucle, je ne vois pas où se trouve le swf des titres d'album (ceux qui bougent).

Citer
Organistion générale :
Les photos doivent être dans un même dossier et doivent être nommées Photo1.jpg, Photo2.jpg.....Photox.jpg
Les descriptifs doivent être dans un même dossier et doivent être nommés Album1.txt, Album2.txt....Albumx.txt
Ca fais peur la je n'en suis pas aux "For" ou "While". Faut qu'je lise encore et encore …

Citer
A la racine des 2 dossiers précédent le fichier swf contenant le code.
Pardon, mais je ne comprends pas bien cette phrase !!

Citer
Bon courage à toi et bravo pour cet excellent début...
Bravo à toi, car a chacune de tes interventions, avec des explications claires et des codes aussi bien commentés, ont ne peut qu'évoluer … Merci pour ce soutien !

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 02, 2008, 07:48:22 am
Bonjour Chrys,

Oui dans l'algorithme que je te propose je pars du principe que les textes et les images sont externes. L'avantage c'est une modification plus facile du contenu. Pour apprendre à faire cela, essaye :

Avec un traitement de texte :

dbtitre=le titre de l'album&dbarticle=le texte de ton article

Enregistre le fichier sous le nom Album1.txt au format texte en codage UTF8 pour conserver les accents.

Dans flash sur la scène 3 zones de texte dynamique la première mono ligne nommée : Titre, la seconde multi ligne nommée : Article la troisième monoligne nommée :Alerte

Sur un calque ActionScript écrire le code suivant :
//Création d'une occurrence de l'objet LoadVars pour réceptionner les données
var lireTexteExterne:LoadVars = new LoadVars();
lireTexteExterne.onLoad = function(Disponible:Boolean):Void  {
//Si les données sont disponibles
if (Disponible) {
Titre.text = this. dbtitre;
Article.text = this. dbarticle;
} else {
//Sinon avertir l'utilisateur
Alerte.text = "Fichier non disponible sur le serveur";
}
};
/////////////////////////////////////// Corps du programme ///////////////////////////////////////////////////////
//Appel des données externes
lireTexteExterne.load("Album1.txt");
Pour la phrase que tu ne comprends pas :
Citation de: RMistral
A la racine des 2 dossiers précédents le fichier swf contenant le code.
Je voulais dire que le fichier swf doit être au dessus des 2 autres dossiers

Pour l’animation de ton titre il y a la possibilité de passer par la classe Tween mais là c’est un peu compliqué. Essaye déjà de comprendre la gestion des fichiers textes externes.

Bon courage et bon code…..
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 02, 2008, 12:59:21 pm
Bonjour,

A yé, j'ai fait un test sur un tout nouveau fichier fla, en reprenant ce que tu propose.
J'ai meme ajouté un champ. Et un chemin a un dossier textes.
var lireTexteExterne:LoadVars = new LoadVars();
lireTexteExterne.onLoad = function(Disponible:Boolean):Void  {
    if (Disponible) {
        Titre.text = this. dbtitre;
        Article.text = this. dbarticle;
Sous.text = this.dbsous;
    } else {
        Alerte.text = "Fichier non disponible sur le serveur";
    }
};

lireTexteExterne.load("textes/album1.txt");
Tout fonctionne très bien, pour chaque champ, dans la palette propriétés, j'ai mis ce que je souhaitai comme couleur de texte , police etc …

Maintenant, pour incorporer un lien dans le texte avec ce système, ce doit pas être aussi simple qu'vec une CSS ?

Sinon, nickel, bien pigé le principe.

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Yorigami le janvier 02, 2008, 13:28:00 pm
Je me suis permis d’épingler cette discussion que je trouve de plus en plus enrichissante tant au point de vue des explications de chaque étape, mais aussi pour les interventions et commentaires.
C’est un plaisir, merci Messieurs pour cela. :)
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 03, 2008, 06:32:38 am
Salut Chrys,

Bon maintenant l'exercice du jour :

Essaye de mixer le code du texte interne et feuille de style avec le code du texte externe et ton problème de texte est résolu  :D

Dans ton fichier texte externe html pense à retirer les guillemets doubles.

PS: Merci Yorigami pour tes encouragements
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 03, 2008, 13:40:53 pm
Hello RMistral,

Je ne dois pas être très loin de la soluce, mais la je cale ferme.

1 - Plutot que d'avoir plusieurs blocs de texte, j'en ai créer qu'un seul, nommé "cd", puisque je vais faire agir ma feuille de styles.
2 - J'ai transformé mon fichier txt en html, nommé "album.html"
son code :
cd=Avec des invités dont le contrebassiste Riccardo Del Fra

Benjamin Hénocq / Thomas Grimmonprez : Drs -  Diego Imbert / Jean daniel Botta : Bass -  Emmanuel Duprey : piano - Airelle Besson : Bugle - Michael Joussein : Tb.



Pour recevoir ce CD : Envoyez moi un mail (15 euros port inclus)

3 - puis j'ai tenté un mix sur mon fichier fla calque "actions"
son code
//Création d'une occurrence de l'objet LoadVars pour réceptionner les données
var texteExterne:LoadVars = new LoadVars();
texteExterne.onLoad = function(Disponible:Boolean):Void  {
    //Si les données sont disponibles
    if (Disponible) {
        cd.htmlText = this.cd ;
    } else {
        //Sinon avertir l'utilisateur
        Alerte.text = "Fichier non disponible sur le serveur";
    }
}
//importation de la classe externe feuille de style
import TextField.StyleSheet;

//Création d'une occurrence de feuille de style
var Style:StyleSheet = new StyleSheet();

//fonction de chargement de la feuille de style externe
Style.onLoad = function(disponible:Boolean):Void  {
    if (disponible) {
       
cd.styleSheet = Style;
cd.html = true;

    } else {
        alerte.text = "La feuille de style n'est pas disponible";
    }
}
///////////// Corps du programme ///////////////
//Appel des données externes
texteExterne.load("textes/album.html");

//Appel de la feuille de style
Style.load("styles.css");
Bien, résultat des courses :

Mon texte apparait bien comme je le souhaite sauf que : il prend les proprietes du panneau proprietes de flash et non les styles de la CSS. par contre, et c'est la que je suis perdu, le lien fonctionne avec le changement de couleur etc … de ma CSS !!

Arghhh !!! :o

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 04, 2008, 06:56:33 am
Bonjour Chrys,

Regarde du côté du nom de la feuille de style (styles.css ou style.css ?). De plus nomme ton fichier texte album.txt pour ne pas confondre par la suite avec une page html.


Bonne journée...
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: T_bo le janvier 04, 2008, 10:29:39 am
il y a aussi peut etre un petit soucis dans l'agancement de ton code, flash lit le code dans l'ordre, ce qui implique qu'il charge ton texte et lui applique un style qu'il n'a pas encore chargé, par conséquent ton texte ne peut être formaté... Essais de charger ton style avant ton texte (en conditionnant le chargement du texte a celui du style par exemple ou juste en modifiant l'ordre de ton code) cela pourrais résoudre ton problème.
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 04, 2008, 11:45:24 am
Bonjour et merci Messieurs,

J'ai changé album.html par txt, puis j'ai inversé l'ordre des chargements et ca colle, comme quoi des fois un rien suffit.

J'attends la suite des instructions !!! ce systeme est super pour comprendre. En attendant , je vais plancher sur le MovieClipLoader.

Chrys


PS :heu … non !!
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 04, 2008, 15:58:56 pm
Bonjour,

Voilà les lignes que je te propose. Chez moi cela fonctionne. Le principe comme T_bo te l'explique est de ne pas essayer d'appliquer le style tant que le style n'est pas présent. Entre le moment ou je demande et le moment ou j'ai le temps passe et l'animation continue..... (C'est comme dans la vie ca ;) )
//Création d'une occurrence de l'objet LoadVars pour réceptionner les données
var lireTexteExterne:LoadVars = new LoadVars();
lireTexteExterne.onLoad = function(disponible:Boolean):Void  {
//Si les données sont disponibles
if (disponible) {
//j'applique la feuille de style sur du texte qui est forcèment présent
ZnTexte.styleSheet = Style;
ZnTexte.html = true;
ZnTexte.htmlText = this.dbtexte;

} else {
//Sinon avertir l'utilisateur
Alerte.text = "Fichier non disponible sur le serveur";
}
};

//importation de la classe externe feuille de style
import TextField.StyleSheet;
//Création d'une occurrence de feuille de style
var Style:StyleSheet = new StyleSheet();
//fonction de chargement de la feuille de style externe
Style.onLoad = function(disponible:Boolean):Void  {
if (disponible) {
//Appel des données externes maintenant que je dispose de la feuille de style
lireTexteExterne.load("Album.txt");
} else {
alerte.text = "La feuille de style n'est pas disponible";
}
};
/////////////////////////////////////// Corps du programme ///////////////////////////////////////////////////////
//Appel de la feuille de style
Style.load("style.css");
Bon courage pour le MovieClipLoader
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 04, 2008, 21:22:49 pm
Citation de: RMistral
Bonjour,

Voilà les lignes que je te propose. Chez moi cela fonctionne. Le principe comme T_bo te l'explique est de ne pas essayer d'appliquer le style tant que le style n'est pas présent. Entre le moment ou je demande et le moment ou j'ai le temps passe et l'animation continue..... (C'est comme dans la vie ca ;))
Effectivement, ton code marche très bien.

Citer
Bon courage pour le MovieClipLoader
Merci je vais en avoir besoin, vu le temps que j'ai passé pour pondre le code du haut !!!
Pour cette partie , ben, je suis pas sorti du sable !!

Je me suis fais un petit fichier texte, de ta recette a suivre un peu plus haut dans les messages.

Si j'ai bien suivi, il faut que je me fasse une "Boite" (MovieClipLoader) dans laquelle il y aura du text, une image et une anime.
Cette "Boite" doit être vide, et je dois faire en sorte que je puisse en chercher tant que j'en ai besoin (suivant le nombre d'album).
A la racine de tout ça, je doit avoir trois dossiers "fournisseur":
1 pour le texte (de chaque album)
1 pour les images (jacquette de chaque album)
1 pour les swf (que j'ai pu récupéré de l'ancien site)

Donc en réalité, je travail en aveugle, sur des composants vide.
Qui ensuite se rempliront, grace au code.

Bon … ben c'est parti !! :/

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 05, 2008, 21:46:18 pm
Bon alors voila ma première tentative pour un MCL.

le code ci dessous est un mélange entre, des codes trouvé de ci de la, la notice Flash etc …

code

//je créer un clip vide.
var conteneur:MovieClip = this.createEmptyMovieClip("album", this.getNextHighestDepth());
var mclListener:Object = new Object();
 
mclListener.onLoadInit = function(target_mc:MovieClip):Void
{
    conteneur._x = 0; //je place mon image 0 pixels du bord gauche.
    conteneur._y = 10;//et a 10 pixels du haut.
}

var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(mclListener);
 
//chargement de mon image.
mcl.loadClip("img/couv1.jpg", conteneur);
le soucis, c'est que lorsque l'on va a la pêche comme ça, on ne comprends pas tjrs ce qu'il se passe.

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 07, 2008, 10:39:03 am
Bonjour Chrys,

Je te propose de découper le travail. En résumé tu sais charger un texte externe et tu sais appliquer une feuille de style externe. Maintenant il faut maitriser le MovieClipLoader. Dans un troisième temps tu mélangeras les 2 puis nous verrons les boucles.

Pour le MovieClipLoader il faut bien comprendre le principe.

Il faut créer une occurrence de l’objet MoviClipLoader puis un objet Ecouteur chargé de nous prévenir quand quelque chose arrive.

Il y a 5 événements qui peuvent survenir en cours de chargement. onLoadStart (quand commence le chargement), onLoadProgress (combien d’octect chargés sur un total de combien), onLoadComplete (le dernier octet est là mais le fichier n’est pas encore disponible), onLoadInit (Ca y est nous pouvons jouer avec), onLoadError (Ca tourne au cauchemar y a un problème)

Le seul événement obligatoire à programmer est onLoadInit qui nous indique la disponibilité du fichier. C’est à partir de là que je suis en mesure de manipuler mon MC de réception.

Donc voilà le code associé :
///////////////////////////////////////////////////////////////////////// Chargement fichiers externes
//Création d'une occurrence de l'objet MovieClipLoader pour gestion du chargement JPG, SWF, GIF, PNG
var ChargementFichier:MovieClipLoader = new MovieClipLoader();
/*Création d'un objet d'écoute chargé de nous décrire ce qui se passe pendant le chargement*/
var EcouteurDeChargement:Object = new Object();
//Fonction gérant le début du chargement
EcouteurDeChargement.onLoadStart = function(clipActuel:MovieClip):Void  {
    //Message ça commence
    Alerte.text = "Le chargement débute"
    Alerte._visible = true;
};
//Fonction gérant l'arrivée des octets
EcouteurDeChargement.onLoadProgress = function(clipActuel:MovieClip, octetsCharger:Number, totalACharger:Number) {
    //Message Déjà disponible
    Alerte.text = "Déjà disponible .."+((Math.round(octetsCharger/1024)*100)/100)+" Ko / "+((Math.round(totalACharger/1024)*100)/100)+" Ko";
    Alerte._visible = true;
};
//Fonction gérant la fin du chargement
EcouteurDeChargement.onLoadComplete = function(clipActuel:MovieClip):Void  {
    //Message disponible
    Alerte.text = "Le fichier est complètement chargé"
    Alerte._visible = true;
};
//Fonction gérant l'exécution de la première image  de l'élément chargé
EcouteurDeChargement.onLoadInit = function(clipActuel:MovieClip):Void  {
    Alerte.text = "";
    Alerte._visible = false
   //Position de la photo en x et y
    clipActuel._x = 0
    clipActuel._y = 0
    }
};
//Fonction gérant les erreurs de chargement
EcouteurDeChargement.onLoadError = function(clipActuel:MovieClip, codeErreur:String,numeroErreur:Number):Void  {
    Alerte.text = codeErreur + " " + numeroErreur
    Alerte._visible = true;
};
//Activation de l'écouteur de chargement
ChargementFichier.addListener(EcouteurDeChargement);
Il faut créer un MC vide pour recevoir le fichier que nous souhaitons charger puis il suffit d'apeler notre MCL pour charger à la demande le fichier jpg, gif, swf, ou png.

//Création du MC Album en niveau 0 sur la scène
this.createEmptyMovieClip("Album1",0, 1);
//Création dans le MC Album d'un MC Photo en profondeur 0
Album1.createEmptyMovieClip("PhotoAlbum",0, 1);
//Appel au MCL pour charger la photo de l'album
ChargementFichier.loadClip("URL de la Photo à charger",Album1.PhotoAlbum);
Essaye puis nous verrons la suite....
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 07, 2008, 16:52:06 pm
Bonjour,

Et oui, ca marche super bien évidemment !!! :D

J'ai bien évidemment, une question a poser par ligne quasiment . :P
je vois par exemple que tu as ajouté des fonctions mathématiques (si j'ai bien suivis) :
…((Math.round(octetsCharger/1024)*100)/100)+" Ko / "+((Math.round(totalACharger/1024)*100)/100)+" Ko";

Tout nouveau pour moi .

la ou je me pause le plus de question (en ce moment), c'est sur la gestion de la Mise en page. Càd, pour le placement de chaque module, comment va t'on pouvoir gérer les hauteurs et largeurs en pixels, des différent éléments.

mais , j'imagine que cela arrivera en toute fin des travaux.

Chrys

Pour celles et ceux qui suivent cette évolution avec grand intérêt (comme moi), ligne 32 = "};" inattendu.
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 08, 2008, 00:29:25 am
Bonne nuit,

La ligne en question (facultative) permet d'afficher arrondi en Ko le nombre de Ko chargé et le nombre de KO à charger en temps réel. Le onLoadProgress transmet les 2 valeurs (dispo,total) en octet. Pour faire propre l'affichage est calculé en Ko

Pour la mise en page il suffit de jouer sur les positions _x,_y dans le onLoadInit ainsi que sur le _width et/ou le _height toujours dans le onLoadInit.

Ton image n'est disponible et utilisable que dans le onLoadInit.

Maintenant si cela fonctionne essaye de mixer le chargement de la photo de l'album et le texte descriptif et la feuille de style en un seul fichier fla.


Bon courage....
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 10, 2008, 17:18:47 pm
Citation de: RMistral
Maintenant si cela fonctionne essaye de mixer le chargement de la photo de l'album et le texte descriptif et la feuille de style en un seul fichier fla.
Bonsoir,

Oui ca fonctionne pour l'image.

Pour la tentative de mixage avec le texte/CSS, la seule chose que j'obtiens, c'est de voir mon texte dans la fenetre de sortie, mais pas d'erreur. Dans le swf résultant, je vois que l'image.
Pourtant, crois bien que j'ai essayé en mettant mon code d'import du texte , partout dans tout les sens … ou alors, il doit m'en manquer un !! ( de sens !) :rolleyes:

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 11, 2008, 12:31:51 pm
Bonjour Chrys,

Bien voilà le grand moment !!!!!

Nous allons essayer de créer dynamiquement un MC Album1 sur la scène. Ce MC contenant un MC PhotoAlbum en profondeur 0 et une zone de texte Descriptif en profondeur 1. A toi de rajouter par la suite dans Album1 un MC titre en profondeur 2.

Sur ta scène juste une zone de texte dynamique nommée : Alerte pour afficher les messages d'erreurs

Sur un calque ActionScript le code suivant :
///////////////////////////////////////////////////////////////////////// Chargement fichiers externes
//Création d'une occurrence de l'objet MovieClipLoader pour gestion du chargement JPG, SWF, GIF, PNG
var ChargementFichier:MovieClipLoader = new MovieClipLoader();
/*Création d'un objet d'écoute chargé de nous décrire ce qui se passe pendant le chargement*/
var EcouteurDeChargement:Object = new Object();
//Fonction gérant le début du chargement
EcouteurDeChargement.onLoadStart = function(clipActuel:MovieClip):Void  {
//Message ça commence
Alerte.text = "Le chargement débute";
Alerte._visible = true;
};
//Fonction gérant l'arrivée des octets
EcouteurDeChargement.onLoadProgress = function(clipActuel:MovieClip, octetsCharger:Number, totalACharger:Number) {
//Message Déjà disponible
Alerte.text = "Déjà disponible .." + ((Math.round(octetsCharger / 1024) * 100) / 100) + " Ko / " + ((Math.round(totalACharger / 1024) * 100) / 100) + " Ko";
Alerte._visible = true;
};
//Fonction gérant la fin du chargement
EcouteurDeChargement.onLoadComplete = function(clipActuel:MovieClip):Void  {
//Message disponible
Alerte.text = "Le fichier est complètement chargé";
Alerte._visible = true;
};
//Fonction gérant l'exécution de la première image  de l'élément chargé
EcouteurDeChargement.onLoadInit = function(clipActuel:MovieClip):Void  {
Alerte.text = "";
Alerte._visible = false;
//Position de la photo en x et y à toi de voir les positions
clipActuel._x = 0;
clipActuel._y = 0;
};

//Fonction gérant les erreurs de chargement
EcouteurDeChargement.onLoadError = function(clipActuel:MovieClip, codeErreur:String, numeroErreur:Number):Void  {
Alerte.text = codeErreur + " " + numeroErreur;
Alerte._visible = true;
};
//Activation de l'écouteur de chargement
ChargementFichier.addListener(EcouteurDeChargement);
///////////////////////////////////////////////////////////////////////////////// Chargement du texte externe
//Création d'une occurrence de l'objet LoadVars pour réceptionner les données
var lireTexteExterne:LoadVars = new LoadVars();
lireTexteExterne.onLoad = function(disponible:Boolean):Void  {
//Si les données sont disponibles
if (disponible) {
//j'applique la feuille de style sur du texte qui est forcèment présent
Album1.Descriptif.styleSheet = Style;

Album1.Descriptif.htmlText = this.dbtexte;
} else {
//Sinon avertir l'utilisateur
Alerte.text = "Fichier non disponible sur le serveur";
}
};

////////////////////////////////////////////////////////////////// importation de la classe externe feuille de style
import TextField.StyleSheet;
//Création d'une occurrence de feuille de style
var Style:StyleSheet = new StyleSheet();
//fonction de chargement de la feuille de style externe
Style.onLoad = function(disponible:Boolean):Void  {
if (disponible) {
//Appel des données externes
lireTexteExterne.load("Style.txt");
} else {
alerte.text = "La feuille de style n'est pas disponible";
}
};
/////////////////////////////////////// Corps du programme ///////////////////////////////////////////////////////
//Appel de la feuille de style
Style.load("style.css");
//Création du MC Album en niveau 0 sur la scène
this.createEmptyMovieClip("Album1",0, 1);
//Création dans le MC Album d'un MC Photo en profondeur 0
Album1.createEmptyMovieClip("PhotoAlbum",0, 1);
/*Création d'une zone de texte dans album pour recevoir le descriptif de l'album
A toi de mettre ici les bonnes dimensions en fonction de la taille et de la position de l'image de l'album*/
Album1.createTextField("Descriptif",1,PositionX,PositionY,Largeur,Hauteur);
Album1.Descriptif.multiline = true;
Album1.Descriptif.html = true;
//Appel au MCL pour charger la photo de l'album
ChargementFichier.loadClip("URL de la Photo à charger",Album1.PhotoAlbum);
Il ne restera plus que l'étape boucle pour réaliser ton projet.

Bon courage ......
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 11, 2008, 15:30:05 pm
Bonjour RMistral,

Et merci, j'avance a grand pas !!
C'est vraiment TOP, j'ai aussi réussi a importer mon Titre (en swf) en profondeur 2.
Par contre, je n'arrive pas a agir sur les mesures de placement, j'ai bien tenté comme avec le MC Texte (en changeant la profondeur et les autres mesures) :

[c]Album1.createTextField("Descriptif",1,220,95,450,213);[/c]

Mais j'ai l'impression qu'il dépend du MC image ! Le titre se place au même endroit, pourtant il n'est pas sur la meme profondeur.
Ci dessous, la partie du code que j'ai changé pour ajouter le titre :
///////////////////// Corps du programme ///////////////////////////
//Appel de la feuille de style
Style.load("style.css");

//Création du MC Album en niveau 0 sur la scène
this.createEmptyMovieClip("Album1",0, 1);

//Création dans le MC Album d'un MC Photo en profondeur 0
Album1.createEmptyMovieClip("PhotoAlbum",0, 1);

//Création dans le MC Album d'un MC Titre en profondeur 2
Album1.createEmptyMovieClip("TitreAlbum",2);

/*Création d'une zone de texte dans album pour recevoir le descriptif de l'album en profondeur 1
A toi de mettre ici les bonnes dimensions en fonction de la taille et de la position de l'image de l'album*/
Album1.createTextField("Descriptif",1,220,95,450,213);
Album1.Descriptif.multiline = true;
Album1.Descriptif.html = true;

//Appel au MCL pour charger la photo de l'album
ChargementFichier.loadClip("img/couv1.jpg",Album1.PhotoAlbum);

//Appel au MCL pour charger le swf Titre de l'album
ChargementFichier.loadClip("swf/LudPrei.swf",Album1.TitreAlbum);
Je l'est nommé TitreAlbum.

Merci

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 12, 2008, 07:45:27 am
Bonjour,


Ok la construction du MC  Album1.createEmptyMovieClip("TitreAlbum",2) est bonne.

L'appel au fichier swf externe aussi : ChargementFichier.loadClip("swf/LudPrei.swf",Album1.TitreAlbum);

Maintenant il te faut travailler dand le onLoadInit du MovieClipLoader. Là avec un if ou un switch il faut réagir en fonction du nom (TitreAlbum ou Photoalbum) pour positionner et mettre à la taille à l'aide de TitreAlbum._x, TitreAlbum._y, TitreAlbum._width, TitreAlbum._height et PhotoAlbum._x, PhotoAlbum._y, PhotoAlbum._width, PhotoAlbum._height

//Fonction gérant l'exécution de la première image  de l'élément chargé
EcouteurDeChargement.onLoadInit = function(clipActuel:MovieClip):Void  {
Alerte.text = "";
Alerte._visible = false;
switch (clipActuel._name) {
case "PhotoAlbum" :
clipActuel._x = Position x
clipActuel._y = Position y
//Taille si besoin ou clipActuel._xscale, clipActuel._yscale
clipActuel._width = taille horizontale
clipActuel._height = taille verticale
break;
case "TitreAlbum" :
clipActuel._x = Position x
clipActuel._y = Position y
//Taille si besoin ou clipActuel._xscale, clipActuel._yscale
clipActuel._width = taille horizontale
clipActuel._height = taille verticale
break;
}
};
Voilà essaye çà et bon code.....
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 12, 2008, 13:35:08 pm
Bonjour,

Et oui, et pouff (http://www.delphimuz.com/test1/).

En faites, j'imagine qu'en faisant attention aux profondeurs, en commençant par "case" et terminant par "break", on pourrait ajouter un tas de fichiers !?

C'est passionnant … :D

Et étonnant, surtout quand je vois que mon fichier fla comporte la scène avec une couleur de fond et un seul calque "actions".

Chrys

PS : une question tout de même, qu'elle est la différence entre :
[c]._xscale / ._yscale[/c]
et
[c]._width /._height[/c]
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 14, 2008, 04:15:31 am
Bonjour,

Bravo belle réussite.

_width permet de donner ou de lire la taille en pixels d'un MC idem pour _height

_xscale, _yscale permet de modifier en % la taille d'un MC 100% égale échelle 1 c'est à dire la taille actuelle de ton MC

Pour garder l'homothétie il suffit de formuler de la manière suivante :
MonMC._xscale=MonMC._yscale=75Pour le switch il suffit de rajouter des "case" autant qu'un évêque peut en bénir...

Voilà la prochaine étape c'est de mettre l'Album dans une boucle pour créer à la volée x Albums.

Je t'explique çà après le salon Intergraphic.


Bonne journée...
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 14, 2008, 09:39:03 am
Bonjour,

Merci pour ces précisons, que je vais m'empresser de tester ;)

Ok, pas de soucis pour la suite :cool: , et je te souhaite … un bon salon :D

Bonne journée à toi …

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 18, 2008, 10:49:19 am
Bonjour,

Bien, j'ai bien tout suivi ce que tu indique ici. (mais apparemment non !)

Mis le code que tu me donne, biensur j'ai opéré qq changements suivant les dimensions et nom.

dont a la place de :
//importation de la classe externe feuille de style
import TextField.StyleSheet;
//Création d'une occurrence de feuille de style
var Style:StyleSheet = new StyleSheet();
//fonction de chargement de la feuille de style externe
Style.onLoad = function(disponible:Boolean):Void  {
    if (disponible) {
        //Appel des données externes
        lireTexteExterne.load("Style.txt");
    } else {
        alerte.text = "La feuille de style n'est pas disponible";
    }
};
part :

[c][large]lireTexteExterne.load("textes/Album"+i+".txt", AlbumActuel);[/large][/c]

J'ai bon ?

Quand je test, j'ai un seul album et dans le panneau de sorti aucuns messages d'erreur. Gulp !
Je n'arrive pas a trouver ou j'ai fauté :(

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: T_bo le janvier 18, 2008, 15:16:20 pm
A vu de nez et en lisant  rapidement je dirais que si tu ne vois que le dernier album de ta liste...
 c'est que tu ne fais pas intervenir i dans le positionnement y de ton AlbumActuel comme te la dit notre mistral gagnant ?  
genre :
    AlbumActuel._x = 0
    //Position verticale de l'album sur la scene : (La hauteur de l'album + espace de x pixel en dessous) * i
    AlbumActuel._y = 50*i -50

car si le code etait bugger tu ne verrais rien du tout... (apres j'ai pas tout relu en detail non plus mais j'ai toute confiance dans le scripteur)
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 18, 2008, 15:56:00 pm
Hum et oui, et merci T_bo
Faudrait que je lise les commentaires des codes, jusqu'au bout ! :rolleyes:

J'ai donc espacé chaque albums de sa valeur plus 10px, pour voir. Ca roule.
Je demande à la boucle 4 albums, mais j'en vois que 3. (je ne vois pas le dernier)
Et la partie texte n'apparait que pour le premier album.(du haut de la page)

Voili

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 18, 2008, 16:26:57 pm
Coucou,

S'il manque un album augmente la boucle de 1 ou commence à zéro.


Bon courage.....
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 18, 2008, 17:40:46 pm
OK, j'ai choisi l'option d'augmenter la boucle, qui du coup passe a 5.

En test, je me suis trouvé avec  tout sauf les textes. Puis lorsque j'ai ajouté un fichier texte Album5.txt.
Mon premier album a retrouvé son texte. Les trois dernier eux, ne l'ont pas.

Dois je modifier cette ligne ? :

lireTexteExterne.load("textes/Album"+i+".txt", AlbumActuel);

Merci

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le janvier 19, 2008, 04:17:57 am
Bonjour Chrys,

Là je suis fatigué. J’ai zappé une étape et j’ai fais 2 erreurs dans le code.

Oui mais je l'ai fais exprès pour voir si tu suis correctement ;)

Comment ça mauvaise fois !!!!!!


De rage et de dépit je viens d'effacer mon message matinal et je recommence entièrement ici. Excuse-moi....


Je résume :

Nous savons maintenant réaliser l'appel d'un texte externe, l'application d'une feuille de style css sur le texte et enfin le chargement d'un fichier externe de type swf, jpg, gif par l'objet MovieClipLoader.


Maintenant il faut répéter x fois les actions précédentes. Pour cela nous allons utiliser les boucles. Une boucle c'est faire les mêmes opérations un nombre de fois x (boucle for) ou faire les mêmes opérations jusqu'à l'obtention d'une condition (boucle while).

Nous allons rencontrer 2 problèmes :

Le premier problème est que nos MC doivent changer de nom. Le premier doit être nommé Album1 le second Album2 etc. Pour cela il faut en plus de la boucle faire appel à la notion de concaténation. La concaténation c'est l'action de mettre bout à bout 2 variables de type caractère.

Exemple :

var nom:String="Dupont";
var prenom:String = "Jean";
//concaténation
trace(nom+" "+prenom)
//Le résultat affiché est Dupont Jean
Le second c’est que nous sommes en mode asynchrone et donc il faut récupérer nos données textuelles avant de créer les albums. En effet si dans ma boucle j’appelle à chaque passage un fichier texte, je ne récupère que le dernier. Pourquoi ? Parce que mes données arrivent bien plus lentement que ma boucle tourne et donc dans mon objet loadvars chaque fichier texte écrase le précédent avant que je ne l’écrive dans la zone de texte d'ou l'apparition uniquement du dernier descriptif.

Il nous faut dans un premier temps faire 1 fichier texte contenant le descriptif de tous les albums.

Albums=descriptif 1 avec balises html§descriptif 2 avec balise html§descriptif 3 etc.....

Le séparateur entre chaque descriptif est §. Attention il est important car nous allons l'utiliser dans le code pour découper les descriptifs et retrouver celui de chaque album.

L'organisation de nos MC :

(http://www.aexpmil.com/wisibility/Images/Architecture.jpg)

Comment faire le code ?

Nous allons scinder notre code sur 2 images clés. Sur la première le MovieClipLoader le chargement de la feuille de style et le LoadVars.

///////////////////////////////////////////////////////////////////////// Chargement fichiers externes
//Création d'une occurrence de l'objet MovieClipLoader pour gestion du chargement JPG, SWF, GIF, PNG
var ChargementFichier:MovieClipLoader = new MovieClipLoader();
/*Création d'un objet d'écoute chargé de nous décrire ce qui se passe pendant le chargement*/
var EcouteurDeChargement:Object = new Object();
//Fonction gérant le début du chargement
EcouteurDeChargement.onLoadStart = function(clipActuel:MovieClip):Void  {
//Message ça commence
Alerte.text = "Le chargement débute";
Alerte._visible = true;
};
//Fonction gérant l'arrivée des octets
EcouteurDeChargement.onLoadProgress = function(clipActuel:MovieClip, octetsCharger:Number, totalACharger:Number) {
//Message Déjà disponible
Alerte.text = "Déjà disponible .." + ((Math.round(octetsCharger / 1024) * 100) / 100) + " Ko / " + ((Math.round(totalACharger / 1024) * 100) / 100) + " Ko";
Alerte._visible = true;
};
//Fonction gérant la fin du chargement
EcouteurDeChargement.onLoadComplete = function(clipActuel:MovieClip):Void  {
//Message disponible
Alerte.text = "Le fichier est complètement chargé";
Alerte._visible = true;
};
//Fonction gérant l'exécution de la première image  de l'élément chargé
EcouteurDeChargement.onLoadInit = function(clipActuel:MovieClip):Void  {
Alerte.text = "";
Alerte._visible = false;
switch (clipActuel._name) {
case "PhotoAlbum" :
//A toi de mettre ici les bonnes valeurs
clipActuel._x = 0;
clipActuel._y = 0;
//Taille si besoin ou clipActuel._xscale, clipActuel._yscale à toi de mettre ici les bonnes valeurs
clipActuel._width = 0;
clipActuel._height = 0;
break;
case "TitreAlbum" :
//A toi de mettre ici les bonnes valeurs
clipActuel._x = 0;
clipActuel._y = 0;
//Taille si besoin ou clipActuel._xscale, clipActuel._yscale à toi de mettre ici les bonnes valeurs
clipActuel._width = 0;
clipActuel._height = 0;
break;
}
};

//Fonction gérant les erreurs de chargement
EcouteurDeChargement.onLoadError = function(clipActuel:MovieClip, codeErreur:String, numeroErreur:Number):Void  {
Alerte.text = codeErreur + " " + numeroErreur;
Alerte._visible = true;
};
//Activation de l'écouteur de chargement
ChargementFichier.addListener(EcouteurDeChargement);
//Création d'une occurrence de l'objet LoadVars pour réceptionner les données
var lireTexteExterne:LoadVars = new LoadVars();
lireTexteExterne.onLoad = function(disponible:Boolean):Void  {
//Si les données sont disponibles
if (disponible) {
/*Découper sur le symbole § et
Répartir dans le tableau les descriptifs description[0] premier album, description[x] x ieme album*/
description = this.Albums.split("§");
//Nous avons la feuille de style et le texte nous pouvons construire nos albums a l'image 2
gotoAndPlay(2);
} else {
//Sinon avertir l'utilisateur
Alerte.text = "Fichier non disponible sur le serveur";
}
};

//importation de la classe externe feuille de style
import TextField.StyleSheet;
//Création d'une occurrence de feuille de style
var Style:StyleSheet = new StyleSheet();
//fonction de chargement de la feuille de style externe
Style.onLoad = function(disponible:Boolean):Void  {
if (disponible) {
//Appel des données textuelles externes
lireTexteExterne.load("textes/Album1.txt");
} else {
alerte.text = "La feuille de style n'est pas disponible";
}
};
/////////////////////////////////////// Description ///////////////////////////////////////////////////////
/*Chargement de la feuille de style. Quand elle est disponible chargement des textes de description des albums
quand ils sont disponible passage à l'image suivante pour construire les fiches*/
//Appel de la feuille de style
Style.load("style.css");
//Création du tableau devant recevoir les textes de description de l'album
var description:Array = new Array();
stop();
Sur la seconde image clé la boucle permettant la construction à la volée de nos albums

//Définir le nombre d'album
var totalAlbum:Number = 5;
//Boucle à faire totalAlbum fois
for (var i:Number = 1; i <= totalAlbum; i++) {
//Création du MC Album i en niveau i sur la scène
this.createEmptyMovieClip("Album" + i,i);
//Ici facilité d'écriture remplace this["Album" + i] par une variable
var AlbumActuel:MovieClip = this["Album" + i];
//Création dans le MC Album d'un MC Photo en profondeur 0
AlbumActuel.createEmptyMovieClip("PhotoAlbum",0, 1);
/*Création d'une zone de texte dans album pour recevoir le descriptif de l'album
A toi de mettre ici les bonnes dimensions en fonction de la taille et de la position de l'image de l'album*/
AlbumActuel.createTextField("Descriptif",1,100,0,200,150, 1);
AlbumActuel.Descriptif.multiline = true;
AlbumActuel.Descriptif.html = true;
//j'applique la feuille de style sur du texte qui est forcèment présent
AlbumActuel.Descriptif.styleSheet = Style;
//Je charge dans ma zone de texte le descriptif de l'album i-1 (le tableau description est indicé de 0 a x
AlbumActuel.Descriptif.htmlText = description[i-1];
//Appel au MCL pour charger la photo i de l'album i
ChargementFichier.loadClip("images/Photo" + i + ".jpg",AlbumActuel.PhotoAlbum);
//Position sur la scene de l'album à toi de mettre les bonnes positions
AlbumActuel._x = 0;
//Position verticale de l'album sur la scene : (La hauteur de l'album + espace de x pixel en dessous) * (i-1)
AlbumActuel._y = (100 + 10) * (i - 1);
}
stop();
Une autre solution existe en passant par les fichiers xml au lieu d'un fichier texte. Le reproche que je fais aux fichiers xml c'est que la gestion des nœuds et laborieuse en Flash. T_bo lui pense surement exactement le contraire car les solutions qu’il propose sont à base de xml. Mais bon à chacun sa technique et ses préférences.....
Titre: AS3 COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: T_bo le janvier 19, 2008, 10:41:52 am
Citation de: RMistral
Une autre solution existe en passant par les fichiers xml au lieu d'un fichier texte. Le reproche que je fais aux fichiers xml c'est que la gestion des nœuds et laborieuse en Flash. T_bo lui pense surement exactement le contraire car les solutions qu’il propose sont à base de xml. Mais bon à chacun sa technique et ses préférences.....
Puisque tu en parles, j'avoue effectivement que je passerais bien par du XML, parce que j'aime bien et que pour interfacer avec un langage serveur par la suite ce serait  beaucoup plus facile (a mon avis). Je dirais bien aussi que flash est fait pour utiliser le XML et que les possibilité de lecture ecriture de donnée sont beaucoup plus simple et beaucoup plus puissantes (les listenners notamment le "complete" d'un XML est beaucoup plus sûr que sur des variables texte la fin étant clairement indique dans un fichier XML ) mais çà reste effectivement un choix personnel (quoique les "bonnes pratiques" semblent etre de mon coté ;) )
Je ne trouve plus la gestion des noeuds spécialement  laborieuses (surtout en as3), c'est juste un coup a prendre j'ai clairement galerer au debut mais une fois qu'on a chopper le truc çà va et on voit mal comment faire autrement mais je ne me permettrais pas de m'immiscer dans ce pas à pas qui est un vrai regale de pédagogie, talent que je ne possede aucunement, de plus cela ne menerais qu'a embrouiller Chrys et gâcher ce tutorial.

Bonne continuations.
J'attents la suite.
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 19, 2008, 11:09:20 am
Belle intervention T_bo.

Ceci dis, l'alternative en XML (et c'est vrai que j'en entends souvent parler sur les forums Flash) peut être d'un point de vu pédagogique , intéressant aussi.
Donc, je sais a présent vers qui me tourner pour ce type d'exercice ;)

Mais … tu as raison … ne m'embrouillez pas !! :lol:

J'ai pas mal a faire déjà ! :P

Chrys
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Chrys le janvier 22, 2008, 13:58:49 pm
Bonjour,

Je pense que cette aventure à la conquête du MCL est terminé. (quoi que !)

Un GRAND merci a RMistral pour son aide pédagogique .

Le résultat a voir ici. (http://www.delphimuz.com/test1/) pour celles et ceux que ça intéresse.

Encore merci.

Chrys
Titre: AS3 COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: isabelle le mai 12, 2008, 14:42:17 pm
Bonjour,

Bon voilà, j'essaie de comprendre tant bien que mal tout ce qui a été évoqué sur ce post.
Mais, débutante je me mélange carrément les pinceaux.

Je réalise en ce moment un site full flash et comme j’en ai assez de bidouiller avec des bouts de ficelles, je suis pas à pas ce tuto.

Voici comment se compose mon site après l’avoir démonté entièrement pour créer un site multi niveaux.

1 – Anim-intro.swf
Une anim intro suivie d’une image fixe qui est mon décor d’intro.

1-bis Accueil.swf
Juste le décor de l’intro sans l’anim avec 6 zones cliquables (boutons)

2 Illustrations.swf
Un nouveau décor avec un diaporama qui fera appel à des photos externes et 6 zones cliquables (boutons)
   
3 –Peintures.swf
Un nouveau décor avec un diaporama qui fera appel à des photos externes et 6 zones cliquables (boutons)

4- Biographie.swf
Un nouveau décor avec 3 boutons
   a- Biographie
   b – Mes influences
   c- Mes coups de cœurs
faisant appel à des textes dynamiques (c’est fait et ça fonctionne) et 6 zones cliquables (boutons)
   
5 –News.swf
Un nouveau décor faisant appel à un texte dynamique (c’est fait et ça fonctionne aussi) et 6 zones cliquables (boutons)
   
6 – Contact.swf
Un nouveau décor avec juste un lien mailto et 6 zones cliquables (boutons)
   
7 – Video.swf
Un nouveau décor avec trois boutons qui appellent 3 videos (c’est fait et ça fonctionne) et 6 zones cliquables (boutons)

Mon site est en 900 x 600 et chaque swf est à cette même taille. Même si le décor change, je suis obligée de mettre des boutons (plutot des zones cliquables) sur chaque swf, car contrairement à l’exemple de ce tuto, mon site ne se compose pas d’un décor unique avec boutons comprenant une zone dans laquelle s'affichent des éléments différents.

Chaque swf est de 900x600 et sur chaque swf le décor est différent, seules les zones cliquables restent fixes.
Il y en a 7 censées arriver sur les swf du même nom:
1- BTN-Accueil
2 -BTN-illustrations
3 – BTN-Peintures
4- BTN-Biographie
5 – BTN-News
6 – BTN-contact
7 – BTN – video


Ce que je ne comprends pas ce sont les niveaux (10 par 10)
Qu’est-ce que ça signifie ? piste ? image clé ? ni l’un ni l’autre ?
Quel script mettre sur chaque bouton ?
Je crois comprendre que l’article 35 de ce post comporte la réponse :

///////////////////////////////////////////////////////////////////////// Chargement fichiers externes
//Création d'une occurrence de l'objet MovieClipLoader pour gestion du chargement JPG, SWF, GIF, PNG
var ChargementFichier:MovieClipLoader = new MovieClipLoader();
/*Création d'un objet d'écoute chargé de nous décrire ce qui se passe pendant le chargement*/
var EcouteurDeChargement:Object = new Object();
//Fonction gérant le début du chargement
EcouteurDeChargement.onLoadStart = function(clipActuel:MovieClip):Void  {
    //Message ça commence
    Alerte.text = "Le chargement débute"
    Alerte._visible = true;
};
//Fonction gérant l'arrivée des octets
EcouteurDeChargement.onLoadProgress = function(clipActuel:MovieClip, octetsCharger:Number, totalACharger:Number) {
    //Message Déjà disponible
    Alerte.text = "Déjà disponible .."+((Math.round(octetsCharger/1024)*100)/100)+" Ko / "+((Math.round(totalACharger/1024)*100)/100)+" Ko";
    Alerte._visible = true;
};
//Fonction gérant la fin du chargement
EcouteurDeChargement.onLoadComplete = function(clipActuel:MovieClip):Void  {
    //Message disponible
    Alerte.text = "Le fichier est complètement chargé"
    Alerte._visible = true;
};
//Fonction gérant l'exécution de la première image  de l'élément chargé
EcouteurDeChargement.onLoadInit = function(clipActuel:MovieClip):Void  {
    Alerte.text = "";
    Alerte._visible = false
   //Position de la photo en x et y
    clipActuel._x = 0
    clipActuel._y = 0
    }
};
//Fonction gérant les erreurs de chargement
EcouteurDeChargement.onLoadError = function(clipActuel:MovieClip, codeErreur:String,numeroErreur:Number):Void  {
    Alerte.text = codeErreur + " " + numeroErreur
    Alerte._visible = true;
};
//Activation de l'écouteur de chargement
ChargementFichier.addListener(EcouteurDeChargement);

Il faut créer un MC vide pour recevoir le fichier que nous souhaitons charger puis il suffit d'apeler notre MCL pour charger à la demande le fichier jpg, gif, swf, ou png.

Code:
//Création du MC Album en niveau 0 sur la scène
this.createEmptyMovieClip("Album1",0, 1);
//Création dans le MC Album d'un MC Photo en profondeur 0
Album1.createEmptyMovieClip("PhotoAlbum",0, 1);
//Appel au MCL pour charger la photo de l'album
ChargementFichier.loadClip("URL de la Photo à charger",Album1.PhotoAlbum);


Mais je ne sais pas où mettre ce code sur chaque bouton !

A moins que je ne plante complètement sur mon architecture !

Merci d'avance.
Titre: [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: RMistral (Wisi) le mai 16, 2008, 11:02:29 am
Bonjour Isabelle,

Attention, dans ce post il y à un mélange des genres.

Mon premier post explique comment réaliser suivant 2 techniques un site full flash (Architecture Mono Fichier, Architecture Multi Niveaux).

Puis à la demande de Chrys la conversation à évoluée vers la résolution de son problème qui est à base d'une Architecture MovieClip.

Je te conseille si tu débute de ne pas utiliser cette technique (Architecture MovieClip). Commence par la technique Architecture Multi Niveaux qui est plus facile à mettre en place du moins au début.

Pour ton problème je te conseille cette organisation de bas en haut (Niveau0 le plus loin de l'observateur, Niveau1, Niveau2...... NiveauX le plus proche de l'observateur) :

- Niveau 0 Intro.swf  il contient ton animation d'intro et sur la dernière image clé vide des loadMovieNum pour appeler le reste du site.

- Niveau 1 Pour recevoir en remplacement les uns des autres les décors le dernier appelé chasse le précédent

- Niveau 2 Le contenu (Diaporama 1, Diaporama 2, Biographie, News, Contact, Vidéo à mettre sur le décor correspondant du Niveau1

- Niveau 3 Les 6 zones cliquables (boutons)

Pour lancer le site, il faut créer une image clé vide juste après la dernière image de ton animation d'intro puis mettre le code suivant :
//Charge le décor de départ
loadMovieNum("le nom du premier décor à charger.swf", 1);
//Charge le fichier contenant le menu du site
loadMovieNum("le nom du fichier contenant les boutons.swf", 3);
stop();
Dans le fichier contenant le menu de ton site il faut pour chaque bouton écrire le code suivant :
nom du bouton.onRelease=function(Void):Void{
        //Charge le décor
        loadMovieNum("nom du décor à charger.swf", 1);
       //Charge le contenu
        loadMovieNum("nom du contenu à mettre sur le décor.swf",2);
}
Bonne journée....
Titre: Re : [Résolu] COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: isabelle le mai 21, 2008, 13:22:58 pm
Bonjour RMistral,

Merci pour ces précisions.

Je vais de ce pas les appliquer.
Titre: Re : AS2 COMMENT ARCHITECTURER VOTRE SITE FULL FLASH ???
Posté par: Mallie le mai 27, 2009, 20:31:00 pm
Bravo pour cette explication, c'est génial ! merci !