ILLUSTRATION D'AFFICHAGE DE DÉGRADÉS AVEC BEGINGRADIENTFILL()

stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009 - 19 août 2009 à 04:34
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 - 3 sept. 2009 à 12:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50460-illustration-d-affichage-de-degrades-avec-begingradientfill

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
3 sept. 2009 à 12:02
au pire, fais de l'AS2 sous flash 8, là tu as beaucoup plus de puissance graphique (et un bien meilleur rendu) et c'est faisable (et dispo) même sous la dernière version de flash (cs4, c'est à dire Flash 10).

Peg'
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
3 sept. 2009 à 11:39
Salut, et désolé de ne répondre que maintenant, j'étais parti m'aérer la tête quelques jours (escalade et funboard dans les Corbières ! Quel plaisir !).

Ok ok... ! Merci les gas! Je vais voir ce que je peux faire, pour le passage en AS3...
Je vais tenter de faire lire, en flash player récent (version 8, 9 ?), le code de l'application flash que je développe (200 fichiers en as2, de 1000 à 3000 lignes de code ! Vous voyez le bazard pour changer de language... Ca fait peur, pas vrai ??). Ca va surement pas être de la tarde !
Mais c'est le seul moyen en effet de profiter de toute la puissance et rigueur de programmation de l'AS3. Et ça va me permettre d'apprendre ce nouveau language !
C'est vrai que l'AS2, c'est pas terrible, car trop permissif à la compilation, et trop lent ! De plus, j'ai régulièrement des messages qui m'avertissent que tel fichier de classe dépasse la limite des 32 ko (!!!), et m'oblige à les dédoubler en 2 ( class maClasse2 extends maClasse1 {...})

A bientôt,
Paolo
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
22 août 2009 à 01:51
Salut,
Je souhaite réagir sur un petit point:
[Paoloadv] : "principe pourtant très répendu de compatibilité ascendante"
-> Pour ta gouverne plus un script est structuré, à une syntaxe unique, moins le temps d'analyse du code par la machine virtuelle sera long, bien qu'il soit transformé en bytecode. L'AS3 peut aller jusqu'à 10x fois rapidement que l'AS2 entre autre grâce à cela. En AS2, c'était vraiment le bordel, tout et n'importe quoi était permis et pour des raisons tout d'abord de performances, mais aussi de lisibilité de code, le passage à l'AS3 avec toute l'organisation orienté objet bien plus poussée qu'en AS2 permet de faire les choses proprement, réutilisables, etc... On ne peut pas faire de convertisseur AS2->AS3 car l'avantage de l'AS3 et de pouvoir profiter de nouvelles methodes, structures de programmation, et se contenter de transcrire des fonctions AS2 vers AS3 est ridicule.
Pour ce qui est de la compatibilité AS2/AS3, saches que tu peux faire tourner une application AS2 dans une application AS3, flash player possèdant actuellement les deux machines virtuelles nécessaires à la lecture de ces deux langages.

Stef.
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
22 août 2009 à 00:43
tout est dans la doc de flash ... et pour ta gouverne, il n'y a quasiment eut aucun changement pour beginGradientFill depuis sa création, même pas au niveau du passage à l'AS3.

Tu attends qu'on t'aide comment, exactement ? parce que là je ne vois vraiment pas ...

Peg'
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
22 août 2009 à 00:39
C'est vrai, Peg ! Moi je regrette juste qu'il n'existe pas de moyen de transposer tout mes sources de l'as2 à l'as3. Cet exemple devient finalement un cas frappant de comment "se prendre la tête" dans une version de langage qui aurait été nettement plus simplifiée et améliorée si et seulement si les concepteurs du logiciel de développement Flash avaient pris soin (cela me parraissaient pourtant être une moindre mesure) de rendre compatible les codes des versions précédentes de Flash, dans le principe pourtant très répendu de compatibilité ascendante...
Sinon, Peg, être "direct" ne veut pas dire, pour moi, être provocateur ou désagréable, et encore moins sous cette image que l'on se donne, prétendre aller à l'essenciel, qui n'est que son essenciel (et pas forcément celui de son interlocuteur, qui en l'occurence ici pose aussi des questions auquelles personne ne répond). J'espère (pas que pour moi..) que c'est aussi ton cas... Et les attitudes figées ne sont jamais très signe de souplesse et d'évolution personnelle. Mais ça, c'est kado. Tu le gardes pour toi.

Au fait, on papotte, tout ça, mais... l'autre but du site est aussi me semble-t-il de venir en aide à ceux qui "se prennent la tête" et POSENT des QUESTIONS. OR, PERSONNE ne vient m'aider sur la question que j'ai posée suite à ce dernier script déposé : comment expliquer (et corriger) le décalage, dans mon script, du clip "grad0" (celui colorié avec dégradés) sur son clip de rattachement "boxe0" (alors que les dimensions et coordonnées de "grad0" sont celles de "box0") ???
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
20 août 2009 à 17:30
Je suis direct, ça a toujours été et ce sera toujours.
Au final, tu t'es pris la tête tout seul sur un simple problème qui serait efficacement réglé avec une version plus récente.

Mais c'est toi qui sait ...

Je regrette juste que ta source n'apporte pas grand chose aux gens au final, ce qui reste le but premier de ce site.

Peg'
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
20 août 2009 à 17:26
PS : j'ai supprimé dans cette dernière version, le onEnterFrame, trop lourd en CPU. L'affichage de couleurs en dégradé n'est plus animé. Le tout toujours en AS2 Flash 7.2 .
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
20 août 2009 à 17:12
je crois que tu n'as pas bien compris ou lu mes messages, Peg.
Je NE développe pas en flash8, mais en flash 7 ! Donc la doc que j'utilise est forcément celle du flash 7. Pour me répéter, c'est pas ma faute si les rédacteurs de cette doc sur flash 7 ne l'on pas mise à jour et gardent une synthaxe et casse propre à la version 6 (pour lineto et moveto en tout cas !). OK Peg ??
En ce qui concerne l'AS3, c'est bien gentil Peg, de m'en parler, mais tu te contredis sur tes "principes" de ne pas aller "utiliser la doc" d'une version différente de celle de la version de flash que l'on utilise. De toute façon, même si c'est plus simple en AS3 (ce que je n'ai JAMAIS contesté, ni démontré d'ailleurs), ça me fait une belle jambe, vu que je ne développe en ... AS2 !!
Mais bon, Peg, je ne t'en veux pas, il commençait à être un peu tard lorsque tu t'es un peu pressé de me répondre, après une journée de grande chaleur... Je te trouve juste un peu trop rabajoie, si tu vois ce que je veux dire, hein Peg ! D'autant plus que je ne peux réellement changer de version d'AS comme ça : trop de code à reécrire ! Impossible ! A moins qu'il existe une sollution de conversion de l'AS2 en AS3. Ce dont je doute fortement.

Sinon, pour parler de choses constructives, je viens de transformer mon programme pour montrer comment, en AS2 et MX 2004 (flash 7.2 !), on peut rattacher un dégradé multicolore ("grad0" dans mon ex.) à un clip déjà existant ("box0" dans mon ex.).
Comme je le raconte dans le commentaire initial du script, une fois le premier affichage du dégradé grad0 sur le clip box0, des fonctions d'évènement souris et clavier permettent de redimensionner box0 (et donc aussi grad0). L'appuie sur la touche BACSPACE permet de relancer le calcul d'un nouveau grad0 suivant les nouvelles coordonnées de box0.
Or ce n'est pas ce qui se passe ! Les coordonnées de grad0 étant affectées par celle de box0 (l'occurence initiale au clip de la bibliothèque "box"), lorsque l'échelle de box0 change, grad0 garde toujours en mémoire l'échelle de box, il me semble... Et l'affichage de grad0 ne se supperpose pas à celui de box0. Si quelqu'un arrive à me débloquer...
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
19 août 2009 à 22:41
quoiqu'il en soit, il faut savoir que c'est indispensable d'utiliser la doc de la version en cours que de prendre une version précédente. Il ne me viendrait jamais à l'esprit d'utiliser la doc de flash 7 pour coder en flash 8.
Rien que pour le fait de ne pas profiter des réelles améliorations de la version en cours, d'ailleurs ...

Tu ne dois donc t'en prendre qu'à toi-même et pas à la doc.

Ensuite, contrairement à ce que tu penses, l'as3 n'a pas énormément changé l'utilisation des gradient, et n'a fait au contraire que simplifier son emploi.

Peg'

ps: Je pourrais aussi dire que nous en sommes à la version 10 de Flash et qu'il serait bon de se mettre à jour, mais je passerais pour un emmerdeur et bla bla ... :p
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
19 août 2009 à 21:20
C'est bien ce qui me semblait... Tant pis ! Merci quand même.
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
19 août 2009 à 19:46
Le BitmapData est dispo a partir de Flash8 si mes souvenirs sont bon.
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
19 août 2009 à 19:21
En réponse à la première remarque de Stef : je ne peux pas importer flash.display.BitmapData sur ma version de Flash ! Pfff ! Quel dommage ! Je constate qu'il y a plein de classes utiles qui sont inaccessibles sur la version que j'utilise (7.2). Voilà pourquoi je ramme en AS2... je comprends ! ;^)
Tchao !
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
19 août 2009 à 19:03
Ah j'oubliai de rappeler : je parle d'AS2, sous MX Pro 2004, tant pour le code que pour la doc. La doc AS3 n'est pas compatible avec celle d'AS2 (plus de 6000 fonctions en AS3 contre 1500 en AS2 !). Mais c'est vrai que sur le site Adobe, la doc est heureusement mise à jour. Pas sur le logiciel, qui concerve celle de la version 6 !
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
19 août 2009 à 18:52
Tu parle de la doc Flash ?? C'est jutement, comme je le souligne dans mon message inicial, à CAUSE de cette foutue doc que j'ai perdu un temps fou à comprendre pourquoi, en recopiant texto leurs exemples, rien n'était affiché à l'exécution ! Pas même un message d'erreur !! Juste parce que les rédacteurs de cette doc ne se sont pas foulé les chevilles : ils ont tout bonnement repris leurs doc de la version précédente (6), sans corriger le nom des méthodes dont la casse avait changé en Flash 7 ! (voir lineto et lineTo, moveto et moveTo...) ! Je suis sur que je ne suis malheureusement pas le seul à en avoir pati. Quelle honte, cette doc flash !!
Mais tu as raison, Stef, ce code est assez futile, c'est juste un cas d'illustration, pour réponde à ceux qui se posent des questions là dessus (et il y en a, et pas que dans ce forum).
Bye bye
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
19 août 2009 à 18:39
RTFM!.
Quand même, je veux pas dire mais la doc ressemble déjà à un tuto au niveau des gradients avec des exemples de code, conseil, grandes descriptions, etc...:
http://help.adobe.com/fr_FR/AS3LCR/Flash_10.0/flash/display/GraphicsGradientFill.html
[ici AS3 mais tu trouvera pareil pour l'AS2]

Sinon au lieu de changer d'IDE pour la version MX2004, autant directement prendre CS4.
paoloadv Messages postés 28 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 15 avril 2014
19 août 2009 à 18:24
Bonjour,
ce script est une ILLUSTRATION à une méthode flash qui permet de faire des dégradés, pour ceux qui ne la connaissent pas.
Bien sur, cet exemple, qui se veut aussi, générique dans sa forme de paramétrisation, est un peu lour en CPU, surtout avec un onEnterFrame.
Mais chacun en prend ce qui l'intéresse.
Je rappelle que ce script a tout de même été posté dans un niveau "débutant".
Dans le code, je donne les deux moyens de programmer beginGradientFill (avec matrixType ="box" ou bien avec la matrice de transformation et ses paramètres a, b, c, d..., i).
BitmapData.drax() ? Ah je connaissais pas. Merci Stef ! Je vais y jetter un coup d'oeil...
Merci pour vos remarques, je vais m'en inspirer...
Tchao,
Paolo
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
19 août 2009 à 10:48
Bonjour, je n'ai absolument pas compris pourquoi un tel script (qui utilise effectivement énormément de CPU pour un résultat plutôt moyen) ..
Pourrais-tu nous expliquer en détail ?

Peg'
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
19 août 2009 à 04:34
Lu,
Tu devrais faire le rendu sur un bitmap au lieu de bouffer les ressources CPU en utilisant un affichage vectoriel. Utilises BitmapData.draw().

Stef.