Navigation...Quoi ? Comment ? - Flash/ActionScript - Programmation
Marsh Posté le 28-08-2006 à 21:01:55
ah oui, mais ma réponse a disparu minablement au transfert de topic
donc, tentative d'explication :
- soit tu fais des loadMovie, avec tout ton contenu statique dans des swf séparés, et un fatras incommensurable de gotoAndPlay();, totalement ingérable à gérer dès la première mise à jour,
Citation : - soit simplement des données (textes, images), via une BD + Remoting, ou du XML (plus facile), ou du LoadVars (encore plus facile) |
- ce qui peut se traduire par : un site en Flash dynamique. Là, tu auras un seul (ou un peu plus) .swf très léger, qu'il te suffira de nourrir gaiement d'un contenu sobre mais néanmoins percutant, grâcieusement mis en page grâce aux CSS idoines, chargés délicieusement, et uniquement à la demande de l'utilisateur, par ton mirifique code Actionscript 2.0 (modulaire à souhait, orienté-objet, certes!).
L'une de ces méthodes est meilleure que l'autre, laquelle ?
Pour les questions techniques sur Flash dynamique, just google it. Ou alors précise tes questions.
(j'ai été bon, là?)
Marsh Posté le 28-08-2006 à 21:39:46
Oui je sais, ton post à été effacé, c'est moi qui ai fais une mauvaise manip désolé...
Bah en fait, j'ai déjà bosser avec des load movies etc...mais c'est assez lourd je trouve effectivement.
Non, en fait mon but est de réaliser une galerie d'art, et j'aimerais la réaliser en flash.
Je connais déjà le xhtml et le css, mais bon ça ne peut pas vraiment m'aider là.
En fait ma question est toute simple, en html on utilise les liens pour se déplacer de pages en pages, j'aimerais savoir quoi utiliser avec flash pour aller de pages en pages (accompagné de petites annimations pour rendre le tout plus agréable)
Vous cernez mieu ma question ?
Merci
Marsh Posté le 28-08-2006 à 22:50:24
je cerne, je cerne
avec ces infos-là, je peux enfin te donner des conseils clairs et précis :
- typiquement le genre de site où il te faut du XML,
- le XML est un langage servant à structurer des données, avec des balises.
- très facile à gérer avec Flash,
- apprendre à bosser avec un contenu XML est d'ailleurs la prochaine étape quand on débute avec Flash et qu'on se rend compte que c'est pas génial le contenu statique et les loadMovie.
C'est juste un peu plus abstrait, au niveau de la timeline.
Typiquement, tu vas travailler en faisant des modèles de page, parfois ce modèle est unique (la page contact), parfois ce modèle va être réutilisé vingt-sept fois (la page "oeuvres présentées" ).
Un modèle de page, c'est un stop(); sur ta timeline, exactement comme un site bidon, sauf que tes zones de textes seront dynamiques, et les images ne sont pas présentes, mais chargées depuis un répertoire externe (en .jpg, mais avec MovieClipLoader).
Une fois que tu as chargé ton .xml, tu auras en mémoire un énorme objet (un objet "abstrait", c'est à dire une structure de données située en mémoire vive), extrêment structuré, et simple à naviguer pour en extraire des portions, typiquement un article en particulier. tu extrais ces données, tu prends le texte, tu l'affiches dans la zone de texte, tu prends l'URL de l'image, tu la loades. Quand on clique sur 'suivant', tu avances d'un cran dans la lecture de ton XML, et tu recommences avec l'article suivant.
Pour caser des animations de transitions entre chaque "remplissage" de cette seule et unique page, ça peut être assez sportif, il n'y a pas de technique miracle. De la timeline bien clean, des clips pas trop imbriqués, et un peu de code pour les interactions (rollovers).
En ayant fait une seule page, tu y affiches donc une liste théoriquement infinie d'oeuvres, sans avoir jamais intégré une seule image physiquement dans ton swf, ni copier-coller un seul texte. c'est comme ça qu'on fait.
Remoting est une autre technique, beaucoup plus complexe, mais qui a la même finalité : extraire une portion structurée de données (un Recordset) pour l'afficher depuis une source (une base de données plutôt qu'un fichier tapé à la main). Actuellement, la tendance chez les (bons) professionnels est au Remoting + animations de transitions en code (ceci pouvant être l'objet d'une autre causerie, ainsi que l'encodage vidéo FLV server-side depuis l'upload utilisateur).
LoadVars est une autre technique, beaucoup moins sophistiquée (voire sordide et sans intérêt) pour extraire des données non structurées depuis un fichier texte. C'est galère à gérer, puisqu'il faut restructurer les données (retrouver le titre, la légende, l'image, etc) - on appelle ça "desérialiser" - mais les cons l'utilisent.
Pour mener à bien ton projet tu as besoin de maîtriser :
- l'affichage dynamique de texte : Flash permet d'afficher du HTML simple décoré avec de petites CSS,
- la récupération des données au format XML : lire le fichier, récupérer son contenu, et naviguer dedans,
- le chargement dynamique propre des images : avec MovieClipLoader,
- faire des scrollers sur ton texte : ça c'est super-galère - j'avoue, j'ai toujours peur des scrollers
Tout ceci n'est pas très compliqué, avec des bonnes sources d'infos, les meilleures sont toujours anglophones : kirupa.com , puis viens ensuite media-box.net, flashxpress.net , yazo.net. Le reste est à jeter.
[EDIT] tout est sur Yazo.net, chapitre 'gestion du XML' [/EDIT]
Marsh Posté le 28-08-2006 à 23:56:14
En tout cas merci beaucoup pour cette réponse structurée
Je commence vraiment à comprendre là. En gros, le fichier XML est un fichier externe qui va gérer l'arborèssance et la navigation de mon site, c'est ça ?
Petite question : lorsque je créer mon site en flash, j'ai par exemple 10 oeuvres en ligne. Je souhaite en rajouter une, je n'ai qu'à toucher le fichier XML ? ou bien ce problème vient après, en fonction du php etc...? C'est une question qui traite d'un détail certe, mais ça m'aide à comprendre le rôle de chaque language
MERCI MERCI MERCI
--- edit ---
Petite question, je suis sur yazo depuis hier soir (j'y ai passé la nuit )...en plus de ça je surf à droite à gauche, histoire d'apprendre l'AS. Mais franchement, c'est pas facile, vraiment. Toutes les variables Number, Trace, etc...je ne vois pas trop à quoi elles servent. Enfin bref, pour répondre à mon soucis (voir mes posts au-dessus) concernant donc le XML etc...je dois forcément passer par là ? apprendre l'Action Script ?
Merci
Marsh Posté le 29-08-2006 à 21:58:35
oui, si tu veux être autonome et bosser en solo. Sinon trouve un dév. pour te le faire, mais là, c'est 350/j au minimum. Et il y en a pas beaucoup des dév. AS, en France.
moi je peux pas, j'ai déjà beaucoup trop de travail. ou alors si le site est vraiment très très très chouette.
Marsh Posté le 30-08-2006 à 16:01:09
Citation : LoadVars est une autre technique, beaucoup moins sophistiquée (voire sordide et sans intérêt) pour extraire des données non structurées depuis un fichier texte. C'est galère à gérer, puisqu'il faut restructurer les données (retrouver le titre, la légende, l'image, etc) - on appelle ça "desérialiser" - mais les cons l'utilisent. |
Heu, oué, c'est un peu rapide, comme raccourci... Juste pour info, tu crois que ton recordset en remoting, tu le récupère comment dans Flash... sérialisation, désérialisation... Y a pas de miracles...
Et LoadVars c'est pas pour les cons... tu peux récupérer du fichier texte comme tu peux appeler un script php ou asp pour en récupérer des informations, tu peux simplement envoyer sans attendre de réception comme c'est le cas en remoting... De plus, il possède un évenement onData qui te permet de récupérer le texte brut d'un fichier. Quoi de mieux pour créer ses pages web et y intégrer du html pour Flash ? Après, bien entendu que si tu veux quelque chose de structuré, il faudrai gérer les choses différement, mais loadVars le permet également.
LoadVars est un bon compromis au remoting quand on n'a pas besoin de mettre en place une usine à gaz pour faire 4 requêtes. Et j'imagine que pour un débutant, il sera plus simple de mettre en place quelques petits scripts tirés des exemples php.net pour faire de la récup en base de données que de devoir comprendre et mettre en place un framework tel qu'amfphp.
D'ailleurs il sera surement plus adapté que du XML suivant le nombre de données à traiter, car XML est plutôt lent à parser du XML (bien que ça se soit amélioré avec Flash8). Il permet de retourner à flash un objet contenant X variables, tels que tu les aura décidées dans ton fichier php (du genre paramètres dans l'url : &var1=test&var2=1244&var3=mon texte à moi&var4=true)
A mon avis, il faut commencer par comprendre comment fonctionne la programmation elle-même... peu importe que ça soit du VB, de l'AS ou du C#... c'est les principes de base qui sont important pour pouvoir aller plus loin (les types de variables, les mots-clés, les boucles, les déclarations / affectations de variables, les fonctions, etc...) Après on peut commencer à comprendre la "temporalité" dans Flash, les gestionnaires d'évenements, les transitions, etc...
Marsh Posté le 30-08-2006 à 21:22:43
question de pratique, personnellement je n'utilise plus de LoadVars, même pour 4 requêtes. AMFPHP est loin d'être une usine à gaz, et avec LoadVars le temps passé à coder le sérialiser / désérialiser 4 résultats de requêtes dans une longue chaîne , dans deux langages différents (PHP/Flash, puis vice-versa) est un peu gavant, même en connaissant très bien les deux. Note que la sérialisation de Remoting est codée en C++, forcément beaucoup plus rapide au run-time, de surcroît. Sur le cas particulier d'AMFPHP, seul le côté serveur est effectivement en PHP.
remoting permet une infinité théorique de PendingCall simultané, je comprends pas trop ta remarque là-dessus, tu peux avoir autant de PendingCall que tu veux en cours, dans le sens que tu veux.
autre gros reproche à l'égard du LoadVars : les problèmes d'url-encodaaage L'url-encodage de PHP n'est pas identique à celui de Flash (les _ et les - et les . ne sont pas encodés), et pire : PHP décode automatiquement les variables en GET sans te laisser la main, ça c'est carrément insupportable.
autre gros gros reproche : une demi-heure avec cURL et ton authentification est crackée, et ça c'est vraiment critique comme faille. AMF est un format binaire. AMF n'est pas plus facile à sécuriser, mais ses failles sont moins flagrantes.
le plus souvent cité : rajouter un champ dans la base en cours de prod = 30 min de corrections sur tous les appels.
Pêle-mêle : les variables GET sont limitées à 256 caractères (assez peu quand tu envoies les deux en même temps suite à un formulaire un peu vicieux), et bien violent à comprendre : le cast obligatoire sur les chiffres et les booléens passés - ils arrivent en type String.
Ca a l'air d'un détail, mais on atteint donc vite les limites de LoadVars, ce qui oblige à prendre des détours, des lignes de codes un peu traîtres (url-encode, casting, etc), je suis pas sûr qu'AMFPHP soit vraiment plus complexe au final. Egalité, zéro partout, balle au centre - je choisis Remoting pour le code : j'ai l'impression d'être plus utile en faisant des trucs compliqués à base de callbacks et de RecordSet qu'en faisant des boucles for sur des chaînes, mon ego probablement.
Marsh Posté le 30-08-2006 à 21:39:29
zlbhlbcqlbz zcibz zibcz b c bcz ez puhze cirfihbzorfb c forzhc oarzx broyx xxrfbl xb
zfx oizrouxbyfbofy x x uofx zro xborz xf hozab yz fz x...
zei yfz fozf crzh fcoro
rx fôxfrzip rziuhfoerh f r cfiurz efc loxgfbrzyxfc l
Voilà ce que j'ai compris de votre conversation mesieurs
Sur ce, bonne soirée !
Marsh Posté le 02-09-2006 à 19:50:43
Vu la réponse de levystore, je pense que lui parler de remoting est un peu tot. Je dis pas que loadVars est mieux que remoting, je dis simplement qu'il est plus accessible au niveau compréhension, c'est tout. Moi aussi, je préfère utiliser le remoting en général. Mais même si tu dédaigne l'objet LoadVars, il est pourtant bien utile dans certains cas (par exemple pour tester si un fichier existe réellement sur le disque... c'est le seul objet qui retourne un résultat dans le cas d'un fichier innexistant)
Allez a++
Marsh Posté le 28-08-2006 à 19:44:18
Bonjour,
En fait voilà, je connais un peu flash, les animations, les clip etc, le soucis c'est que j'ai un peu de mal en ce qui concerne la navigation afiin de réaliser un site web...je me mélange un peu les pinceaux entre GoToAndPlay, TellTarget, Play, bref, j'ai du mal à faire la différence et à savoir lequel utiliser !
J'ai bien tenter de regarder des sites (comme flash france, yazo) mais ils ne montrent pas (et je ne leur en veux pas, parce que c'est moi qui comprend toujours tout de travers) comment réaliser clairement et simplement la navigation dans un site fait en flash.
LoadMovie ? GoToAndPlay ? que choisir ?
Est-ce que vous auriez un bon livre ou même un site à me proposer qui explique bien les bases, parce que je suis sûr que j'ai manque quelque chose...
Ou bien même si vous pouviez m'expliquer en quelques lignes quel est le meilleur moyen de réaliser toute la partie navigation. Sans forcément rentré dans les détails, car je sais que ce serait long à expliquer, mais juste les principaux axes
Merci BEAUCOUP d'avance !
(PS: merci à craps_youp la qui à commencer à m'expliquer...mais j'ai presque rien compris )