Flash/Flex/ActionScript, petite explication - Flash/ActionScript - Programmation
Marsh Posté le 29-09-2009 à 09:21:56
Je me suis personnelement tournée vers Away3D... tu peux voir mon topic (ma signature), je compare les différents framworks 3D par rapport à mon besoin...
Flex est une solution de développement basée sur l'AS3 (+ MXML...)
Il permet de créer de la RIA sans passer par Flash qui lui privilégie + le coté graphisme / animation vectorielle...
Flex est comme tu l'aura compris orienté vers le developpement, tu ne pourras pas créer de graphisme autrement qu'avec des lignes de codes (c'est pas tout à fait ça mais je simplifie).
Donc, comme tu dis, il dispose de bibliothèques (de boutons, interfaces...) pour habiller tes productions, mais tu n'as même pas de zone de travail pour dessiner ou même de timeline...
A partir du moment ou l'interface de flash ne nous sert à rien, qu'on ne fait que de la dev (C'est le cas quand on jouit des frameworks 3D), autant se tourner vers Flex qui est GRATUIT est plus intuitif pour coder...
Par ailleurs, Flex n'est pas une API en soit comme je l'ai dis, il te faut un logiciel pour en profiter... Moi j'utilise FlashDevelop (Gratuit, Windows seulement), mais il y a aussi "Flex builder" de adobe qui est gratuit pour un usage non-professionnel si je ne dis pas de bêtise...
D'un point de vue technique, il faut de très bonnes connaissances de l'AS3 pour ce que tu veux...
N'oublie pas non plus qu'il faut du très LowPoly en 3D...
Si tu es découragé par les limite de Flash (et du CPU), tu peux patienter pour le WebGL qui permet de jouir de l'OpenGL/GPU... Après, on sort du sujet...
Marsh Posté le 30-09-2009 à 00:13:18
OK donc d'après ce que j'ai compris Flex permet de faire des RIA. Tu peux gérer une interface graphique uniquement avec du code. (Un peu comme Swing avec Java non?)
Ce que je n'arrive pas à bien me représenter, est le rôle d'AS3 avec Flex, ou plutôt comment ça s'articule ensemble?
Tu as une appli en Flex, ou plutôt une interface (je sais pas si Flex lui même permet de gérer l'interaction, ou si c'est AS3 qui le permet), et derrière tu as du AS3 relié par exemple à un bouton "submit", et en AS3 tu gère ce qui se passe quand tu clique sur ce bouton "submit"? Grossièrement c'est ça?
Une autre chose que je comprend pas, c'est que d'après ce que j'ai lu, tu peux développer une appli Flex en Flash et faire ça en ActionScript? Ou vice-versa?
Merci pour tes infos
Marsh Posté le 30-09-2009 à 00:43:14
Et pour reprendre sur le projet, dans le cadre des mes études, en multimédia on a pour projet "une visite interactive dans un musée" en utilisant les technologies utilisées (SMIL, Flex...).
Donc j'ai commencé quelques recherches et je suis tombé sur une petite démo 3D sur le net:
http://www.codegravity.com/programming/flex-3d-demo
Donc notre idée du coup ça serait de coder une espèce de petit musée, composé de plusieurs pièce, avec des objets auprès desquels un ptit perso pourrait s'approcher, et intéragir avec pour voir des infos, ou quelque chose du genre.
Marsh Posté le 30-09-2009 à 08:23:06
Flex = AS3 + MXML + MetaData
Le MXML te permet de faire tes composants (jouir de ta bibliothèque d'objet).
Les MetaDatas te permettent par exemple d'intégré une image ou une police au SWF, de changer la taille de l'animation, la couleur de fond... (sur Flash, tu le fais depuis l'interface...).
AS3 pour faire tous le reste (le plus gros).
Le "problème" qui fait que tous le monde s'embrouille, c'est que Flash interprète aussi les MetaDatas depuis la version CS4...
Mais Flex est donc un combiné de "langage", il ne faut pas confondre avec "Adobe Flex builder" qui est un des API permettant de développer en Flex...
Perso, je ne jouis pas pleinement de Flex, je m'en sert en temps qu'alternative gratuite à Adobe Flash, tout simplement ! Je ne me sert même pas du MXML...Le seul hic c'est qu'on a pas de canvas ni timeline (en même temps, ça ne sert à rien du tout quand on utilise des framworks 3D...
Sinon, tu pourra voir le terme "Flax" un jour, c'est un jeu de mot qui consiste à combiner Flex et Flash...
Flex pour faire le plus gros de ton anime / moteur, et Flash pour faire les éléments graphique dont tu aurais besoin... C'est surment le cas de ton lien, on a d'un coté le moteur 3D et les élements codés en AS3, et de l'autre, des graphisme créés sous Flash (eux même parfois contenant de l'AS !)...
Marsh Posté le 30-09-2009 à 08:53:19
Un exemple concret (pour raccourcir mon topic WIP) : http://urfman.free.fr/fhw/ilotAbai [...] pping.html (tu peux orbiter autour de l'ilot via drag and drop)
1) J'ai modélisé/texturé une scène sous Blender...
(C'est du LowPoly, pas le choix, c'est super gourmand !)
2) A partir de Flash, j'ai animé la texture du tronc (j'ai rajouté une bouboule rose animé sur l'image d'origine)
=> http://urfman.free.fr/fhw/ilotAbais/test_tronc.html
J'ai aussi rajouté des surface invisible en guise de "zone active" sur les parties colorés, sur lesquelles se produit un DispatchEvent au MouseOver
3)Sous FlashDevelop (+ Flex SDK), j'importe (j'utilise le framework Away3D, ça aurait pu etre PaperVision3D ou Sandy3D...).
J'utilise donc AS3, les 2 seules métadonnées que j'utilise c'est pour la taille/backgroundColor, et l'autre pour intégré le movieClip du 2)...
Tout le reste, c'est mon "moteur" qui gère ma caméra, le deplacement, le chargement des textures...
J'écoute aussi les Event du movieClip qui fait office de texture de mon tronc. Ça actionne une fonction (ici, seulement l'affichage du nom de l'élément survolée).
Marsh Posté le 30-09-2009 à 11:48:19
OK merci c'est un peu plus clair maintenant.
J'vais aller voir ce qu'est le LowPoly (je pense que c'est faire des polygone très grossiers pour éviter d'en faire des tonnes de minuscules pour éviter que ça soit trop lourd?).
Pour mon projet je commence à regarder ce que je peux faire avec AS3 direct?
En gros l'idée ça serait déjà dans un premier temps:
- Créer les salles du musée en 3D
- Gérer le déplacement d'un mec dedans
Tu me conseils de regarder de quel côté? t'as des bons tutos dispos?
Merci pour ton aidre
Au fait, elle est passée ou ta maison ?
Marsh Posté le 30-09-2009 à 11:52:13
Ca m'a l'air bien chaud lapin n'empêche, y aurait pas un truc simple que j'peux faire avant d'me lancer dans mon truc, histoire de me faire la main avec l'ensemble des technos?
Marsh Posté le 30-09-2009 à 12:15:07
Apprends l'AS3 avec Flash (les tutos y sont lié souvent)
=> http://www.flashkod.com/tutoriaux/ [...] E_906.aspx
=> http://www.yazo.net/index.php?opti [...] 8&Itemid=2
...
Le must c'est que tu apprenne à te servir de la documentation AS3... c'est pas aussi évident que ça...
Habitue toi aussi à externaliser ton code dans un .as...
Une fois que tu pige bien le principe, tu peux commencer à voir du coté du framework3D... Je te conseil Away3D qui a des très bon tuto...
=> http://away3d.com/tutorials
Je ne sais pas quels études tu fais, mais ça peut etre plus ou moins long... tu connais des langages client déja ou pas ?
Marsh Posté le 30-09-2009 à 13:40:51
Je suis pas mal en Java. Du C aussi un peu.
Sinon en web j'ai mes bases en php, js, xml... mais j'suis pas au top.
Marsh Posté le 30-09-2009 à 14:05:11
Away3D c'est donc un moteur graphique pour flash?
Je suis perdu, j'pensais que c'était en rapport avec Flex.
Marsh Posté le 30-09-2009 à 14:55:01
Non, Away3D n'est pas "un moteur pour flash", Away3D c'est un Framework, une collection de class prêt à l'emploi pour AS3 (Flash ou Flex...).
Away3D, PV3D, Sandy, (...) sont à AS3 ce que Mootools, JQuery, ScriptAculous sont à JavaScript... à Savoir un concentré de fonctions fabriqués à partir de celles de base...
Marsh Posté le 30-09-2009 à 14:57:00
OK je capte mieux.
J'vais faire les tutos avec flash dans un premier temps.
J'te tiens au courant.
Marsh Posté le 30-09-2009 à 15:06:27
Oh bah je ne suis pas ton tuteur hein ^^
Marsh Posté le 30-09-2009 à 15:20:22
Oué mais en cas de pépin j'pourais toujours te poser une question non ?
Marsh Posté le 30-09-2009 à 15:46:42
Je sais pas si j'y repondrais...
Marsh Posté le 30-09-2009 à 23:44:18
Tu me conseille quoi comme environnement de dév. au début pour m'exercer à l'AS3 et Flash? D'après toi pour débuter qu'est ce qui conviendrait le mieux?
Marsh Posté le 01-10-2009 à 12:34:49
Je te conseille Flash, j'en suis peu fière mais la majorité des tutos sont dédié à l'environnement Flash...
Il faut bien distinguer le graphisme (les Movieclips / Instances) et le code...(AS3).
Par exemple, tu créera (via les outils de flash) un movieClip, et tu le manipulera soit via les outils du logiciel (TimeLine, interpolations...), ou alors via code...
Dans un environnement de pur dev AS3 (FlashDevelop + FlexSDK pour mon cas), tu sera obligé de tout faire en code (à moins d'importer mais c'est une autre histoire).
La philosophie d'animation en code n'est pas la même bien-sûre, il faudra surtout se servir des fonctions Tween et ses dérivés...
Je t'avouerai aussi que Flash est très limité dans sa fenêtre "action" (ou tu met le code AS3), dans le sens ou l'auto-complétion est nulle ou inexistante, alors que dans FlashDevelop, quand tu tape ta variable ou ton objet, ta direct une liste des méthodes/fonctions qui leur est propre, c'est très intuitif !
Donc Flash ou Autre...
Je dirais que ça dépendra de l'enjeu, si tu t'intéresse à la technologie Flash en général, où si tu souhaite juste finir un projet flash pour ne plus entendre parler de cette technologie...
Marsh Posté le 10-10-2009 à 01:15:38
Yop,
bon j'me suis finalement lancé en installant Flex Builder 3 et faisant quelques petits truc en AS3.
Ensuite j'ai suivi un petit tuto avec la lib Away3D. Mais là gros problème, j'ai regardé sur différents tuto, alors j'ai soit essayé d'importer la lib simplement en l'a mettant dans le rép du projet, soit en lui donnant le path.
Au final, quand je fais un import, genre si je veux import "Camera3D", il va m'aider a taper import away3d.cameras.Camera3D; grâce à l'auto-completion (donc il le trouve), mais au final j'ai une vielle erreur 1172: Definition away3d.cameras:Camera3D could not be found.
Donc si quelqu'un a déjà eu ce problème je suis preneur...
Marsh Posté le 10-10-2009 à 10:21:47
Deja il te faut une lib cohérente avec la version de Flash Player que tu souhaite...
Il doit y avoir des tutoriels pour mettre en place ce framework, je ne connais pas Flex Builder perso...
Après, il faut bien que tu importe toute les biblio qu'il faut (le viewport etc...), mais comme tu le dis, si l'auto-complétion t'assiste pour taper la ligne, c'est qu'il l'a trouve...
Je ne peux pas t'aider là... post ton .as ici pour voir...
Marsh Posté le 10-10-2009 à 12:53:53
Bah visiblement ça vient pas du code, il auto-complète tout mais il les trouve soit disant pas.
Rien que ça ça ne passe pas:
Code :
|
L'erreur est associée à la ligne de l'import:
1172: Definition away3d.cameras:Camera3D could not be found.
Marsh Posté le 10-10-2009 à 15:36:50
Je ne sais pas comment on doit intégrer une class externe sur Flex Builder, je ne connais pas ce soft...
Deja, mon arborescence n'est pas comme ça...
Je n'ai pas "away3d" qui contient toute les sous-classes directement...
Non, j'ai "away3d_2_3_3" (j'utilise cette version moi, ce n'est pas la dernière je crois)
Dedans, j'ai 4 rep : "awaybuilder", "gs", "nochump" et "away3d" (le même que toi)...
Marsh Posté le 10-10-2009 à 16:59:34
Ouais j'ai essayé 2 versions différentes, on en est à la 2.4.0 là.
Mais en soit ça doit pas changer grand chose.
J'arrive pas à trouver de solution. J'continue à chercher
Marsh Posté le 10-10-2009 à 21:15:12
bah, tu as bien la version dédié à la version d'export de flash player ?
2.X.X => FP 9
3.X.X => FP10
Sinon tu fais comment pour importer les class ? tu copies le dossier "away3d" dans ton dossier de projet ? C'est ce qu'on dirait en tout cas...
Dans les propriété de ton projet, tu n'a pas "classpath" ou tu peux parcourir le dossier "away3d_2_4_0" (pour FP9)
Marsh Posté le 10-10-2009 à 21:21:27
Citation : Away3D in Flex Builder |
Marsh Posté le 10-10-2009 à 21:42:46
Je teste ça.
Là je viens de tout delete. J'ai recréé un projet Action Script, qui est donc prévu pour avoir le code source de mon appli.
Ensuite je vais dans Actionscript Build Path en faisant clique droit sur le projet ActionScript que je viens de creer. Et je lui indique le rep ou j'ai mon code source de la lib away3D.
Marsh Posté le 10-10-2009 à 22:58:14
Non bah ça veut pas...
http://www.thetechlabs.com/tutoria [...] with-flex/
Là j'arrive à aller jusqu'à l'étape 7 sans erreur...
A la 8, je tape import away3D.camera.Camera3D; il m'auto-complète correctement et tout, et pis dès que j'enregistre le document, j'ai l'erreur qui apparait:
1172: Definition away3d.cameras:Camera3D could not be found.
Marsh Posté le 11-10-2009 à 00:32:36
Ca y est enfin ça marche.
A vrai dire je sais pas vraiment comment j'ai fait, je pense avoir déjà essayé ces manips mais bon...:
J'ai finalement carrément glissé mon rep qui contient la lib dans le dossier source du projet Action Script sous FB3, j'ai alors eu encore une autre erreur, d'une classe qu'il ne trouvait pas.
Ensuite donc, clique droit sur le projet, propriétés, ActionScript Compiler.
Tout en bas dans le cadre HTML wrapper, j'ai modifié la version associée à "Requiere Flash Player version". Elle était à 9.X.X, j'ai remplacé par la dernière que j'ai d/l, 10.0.32.
La dernière erreur à alors disparu, et là miracle, je vois enfin apparaître mon exemple dans Firefox
Marsh Posté le 11-10-2009 à 10:53:47
Et bien voila une bonne chose de faite...
Tu verras dans mon topic qu'en utilisant FP9 (et la version de away3d qui lui est dédié) j'avais de meilleurs perfs que FP10... Je comprend pas trop pourquoi mais depuis, j'utilise FP9... bref...
Marsh Posté le 11-10-2009 à 11:57:35
Bah à mon avis j'vais surement y revenir alors parce que j'pense que ce que je veux faire ça va bouffer pas mal de proc.
Pour l'instant je vais uniquement chercher le moyen de faire une pièce en 3D dans laquelle je peux me déplacer, la chose la plus simple possible. Donc là j'me tape des tutos sur un peu tout et n'importe quoi jusqu'à ce que je capte comment faire ça.
Marsh Posté le 12-10-2009 à 22:56:17
J'commence à me demander si Away3D est vraiment le top du top par rapport à ce que je veux faire.
A propos de la petite démo du perso qui se trimballe dans la pièce ronde dont j'avais filé le liens au début du post:
http://labs.getoutsmart.com/archiv [...] gine-demo/
En fait apparement c'est fait avec un moteur à eux.
J'ai entendu de faire de la 3D avec Flex en utilisant des composants 2D, mais je sais pas ce qu'il en est.
Pour Away3D, est ce que t'as réussi toi à faire tourner les démos qui a sur le site officiel?
Moi j'me suis battu pour faire tourner celle là, http://www.infiniteturtles.co.uk/p [...] lRoom.html qu'on trouve sur leur site dans la liste des démos ici http://away3d.com/category/demos
Je l'a lance depuis Flex Builder 3, après avoir galérer pour les libs, les versions etc... finalement quand je le lance une fois que j'ai pu d'erreur, j'ai m'a page web avec un fond bleu, et rien dedans... super.
Pour la pièce sinon je vois pas encore comment m'y prendre mais jvais continuer les tutos, au début j'me disais que j'pouvais afficher des gros cubes les uns à cotés des autres et ça m'ferait un mur mais y doit y avoir plus simple
C'est chaud lapin
Marsh Posté le 13-10-2009 à 07:20:00
Leur moteur pour ta démo mélange en effet 3D et Sprite2D (pour le perso).
Away3D est un des moteur qui m'a séduit, rien ne t'empêche de tester les autres... Ils sont tous similaires dans leur mise en place / utilisation.
Jouir d'un framework 3D n'est pas si simple, je t'ai dis qu'il ne fallait avant tout pas sauté les étapes ...
Sinon, toutes les démos du site au quelle je me suis intéressé fonctionnent...
Marsh Posté le 15-10-2009 à 21:52:59
Hello Guys!
premier post sur cette section !!
Architecte JEE depuis pas mal d'années , je suis depuis quelques mois sur une mission flex, je développe des jeux éducatifs pour les écoles néerlandaises en flex, je commence a avoir pas mal d'expérience sur le sujet alors que j'étais pas trop chaud sur cette techno au début y'a pas de topik unik Flex ?
Marsh Posté le 19-10-2009 à 16:01:18
non.
Faut poster ici.
J'avais demandé à un modo, mais il comprenait pas de quoi je parlais. Apparemment c'est pas très connu
Marsh Posté le 19-10-2009 à 17:00:31
La catégorie s'appelle Flash/Flex/ActionScript...
On peut donc créer un topic traitant un cas particulier de flex (un problème, une question) dans cette catégorie, indépendamment d'un topic en particulier...
Grosse boulette, Oui, il faudrait rajouter "Flex" dans le nom de la sous-cat...
Par contre, c'est vrai qu'il faudrait un topic sticky qui explique un peu les différentes plateformes de travaille (les alternatives de flash en terme d'animation et/ou programmation), qu'est-ce que Flex par rapport à Flash, Qu'est-ce que AIR, les Frameworks les plus connus etc....
Marsh Posté le 19-10-2009 à 17:16:39
abais a écrit : La catégorie s'appelle Flash/Flex/ActionScript.... |
Pas chez moi
Marsh Posté le 19-10-2009 à 17:48:08
Ah ouai, t'as raison !
Marsh Posté le 19-10-2009 à 18:01:46
Reply
Marsh Posté le 28-09-2009 à 23:37:29
Bonjour,
Après quelques recherches sur le net, je n'ai pas trouvé de réponse claire sur le lien entre flash, flex et ActionScript.
D'après ce que j'ai compris, une application en flex permet l'intéraction avec l'utilisateur, et flex ne contient que des boutons, formulaires et choses de ce genre, c'est bien ça?
ActionScript lui travaille derrière Flash ou Flex, et il existe différente librairie qui permettent par exemple de faire de la 3D?
J'ai du mal à bien voir comment tout ça s'articule, si quelqu'un a une explication claire à ce sujet je suis preneur.
Je vais avoir à réaliser une petite application. L'idéale pour moi serait d'avoir un petit bonhomme qui se déplace dans une pièce, et qui puisse intéragir avec des objets de son environnement. Un truc très basique.
J'ai vu qu'il existe différente API, comme Sandy3D par exemple. Quelqu'un a déjà réalisé une appli 3D avec une de ces librairies? Et si oui, quelle est votre impression sur celle-ci? Est-elle adaptée?
Merci de vos conseils