Forums Développement Multimédia

Aller au contenu

* * * * * 1 note(s)

[AS3] La POO par la pratique

TUTO

34 réponses à ce sujet

#1 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 30 June 2010 - 13:12 PM

Un tuto destiné à ceux qui veulent aborder la POO depuis leur expérience de l'IDE.

Loin d'être exhaustif il se propose de débroussailler et de démystifier, et ainsi d'ouvrir la voie à des ouvrages ou textes de facture plus classique, voire de permettre de comprendre ce que raconte la doc quand on n'est pas de formation développeur.

http://ressources.me...ases/classesqqc


C'est très perfectible, et ce le sera… là je suis naze, je n'y vois plus rien, il me semble même qu'il manque encore une illustration ou deux par endroits… je ne sais plus où…

Je me laisse un peu de temps pour oublier, puis je passerai le chiffon, et rédigerai une conclusion digne de ce nom… Dommage de le laisser pendant ce temps prendre la poussière, tel que, j'ai la faiblesse de croire qu'il pourra déjà être utile à certains…

;)


Mention spéciale au gardien des grimoires :Hola: (Billy, je te fauche l'expression elle me plait trop ;)) sans qui ce machin serait beaucoup moins clair, moins joli, moins structuré, moins efficace, bref plus pire…
re :Hola:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#2 Billyben

    KlouChiPonshoñistäs

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2597 messages

Posté 30 June 2010 - 14:08 PM

Chouette, j'vais aller lire ça!! C'est énorme ce que tu as fait!!

tiens :

Visionneuse 1

Citation

==== Intro ====
[illustration]

j'imagine qu'il va y avoir qque chose là....!!

#3 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 30 June 2010 - 16:25 PM

ah bah voilà ! par exemple… je le savais qu'il manquait des trucs :D !!

merci ;)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#4 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 05 July 2010 - 12:03 PM

Hello,

Voir le messageBillyben, le 30 June 2010 - 14:08 PM, dit :

Chouette, j'vais aller lire ça!! C'est énorme ce que tu as fait!!

Oui c'est le mot. Je pense que ça va faire des heureux, parce-que là, comment dire.... respect :Hola: .
J'attends avec impatience des réactions de lecteurs, car face au monument, je ne sais pas trop moi-même quoi dire :mrgreen:

#5 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 05 July 2010 - 12:36 PM

Oui, ben moi je sais…
Pas sûre du tout que ça réponde aux attentes des lecteurs de tuto, normal ce n'en est pas un ;)

On s'en fout, ce n'est pas une découverte : j'ai tendance à faire pour les autres ce qui m'aurait plu à moi, comme je suis pas bien normalisée…

Mais c'est pas le thème. Ce à quoi j'aimerais qu'on réfléchisse, c'est à un moyen d'évaluer l'utilité de ce que les uns et les autres on pose dans les ressources. Ce qui n'empêchera personne de n'en faire qu'à sa tête (à commencer par moi) mais qui pourrait aider à identifier l'utile, à séparer le bon pain de l'ivresse.

D'ailleurs, ce n'est pas l'endroit pour taper cette discute… Je m'auto modère vers le lieu qui convient dès qu'on me dit, et en attendant j'en appelle à vos intelligences, ruses, esprits tordus et circonvolutionnés, pour mettre la main sur un moyen d'évaluation (pô possible qu'il n'y en ait pas… on n'a juste pas encore trouvé).

:cool:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#6 laulo

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 13 October 2010 - 14:14 PM

bon ba je comprend pas, je suis bloquer depuis hiere matin sur ton premier exo, trop trop fort le mec :shock:

donc voila je cré un fichier as

package class_as{

        import flash.display.MovieClip;
        import flash.filters.BitmapFilterQuality;
        import flash.filters.BlurFilter;

        public class Oeuvre_1 extends MovieClip {
                public var _masque:MovieClip;
                public var _photo:MovieClip;

                public function Oeuvre_1():void {
                        trace("rerere");
                        masque.filters=[new BlurFilter(10,10,BitmapFilterQuality.HIGH)];
                        photo.mask=masque;
                        photo.cacheAsBitmap=true;
                }
        }
}



ensuite dans mon fla, je cré 2 clip que je met sur la scene


1er clip nomer rectangle, dans ses propriété nom de class "rectangle", nom class base "class_as.Oeuvre_1" et nom d'occurence "masque"

2eme clip nomer homer, dans ses propriété nom de class "homer", nom class base "class_as.Oeuvre_1" et nom d'occurence "photo"

mais sa marche po..... :sad: :? :sad:

#7 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 13 October 2010 - 17:09 PM

j'ai peut-être mal exprimé la chose :

Citation

Imaginons qu'on soit en situation de fabriquer un nombre certain de clips qui auront tous en commun un clip contenant une image (photo) masqué par un autre clip (masque), le masque étant affligé d'un filtre flou. Les images peuvent être animées ou pas et les masques de formes différentes. Ça nous oblige à chaque fois à trois lignes de codes, toujours les mêmes, placées sur la première image du clip en question

ce code, concerne n'importe quel clip contenant un masque et une photo :

public function AvecFlou():void {
                        masque.filters=[new BlurFilter(10,10,BitmapFilterQuality.HIGH)];
                        photo.mask=masque;
                        photo.cacheAsBitmap=true;
}

Si tu associe cette classe à un clip contenant un rectangle (une forme) comment pourrais-tu atteindre les clips nommés photo ou masque ? Il n'y en a pas ;)

Donc tu fabriques un symbole dans lequel, tu mets un clip nommé photo (nom d'occurrence) et un clip nommé masque - ton rectangle - C'est ce symbole que tu associes à la classe (celui qui contient masque et photo).

par ailleurs et puisqu'on y est, tu as essayé ça :

public class Oeuvre_1 extends MovieClip {
                public var _masque:MovieClip;
                public var _photo:MovieClip;

probablement à la suite de la lecture de la page 2, as-tu voulu vérifier cette histoire de décocher la case "Déclarer automatiquement les occurrences" (et tu as bien fait :))
Dans ce cas (case décochée) il faut déclarer les variables, c'est ce qu'explique le tuto, mais les déclarer de leur nom (là tu as déclaré d'autres variables _masque est différent de masque)

On est bien d'accord que tu ne déclares que si tu as décoché, sinon tu oublies.

voilà, j'espère que ça va te remettre sur les rails, et je vais de ce clic voir si jene peux pas préciser un peu plus les choses dans le tuto.

merci de ton intervention :)

N'hésite pas à interroger si ça continue à se rebeller !


[edit : tu as très bien compris le package en revanche (je n'ai pas baladé le message où tu disais avoir essayé sans les points), si tes classes sont ds un répertoire class_as et le répretoire au même niveau que le fla, c'est exactement comme ça qu'il faut faire !! ]
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#8 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 13 October 2010 - 17:30 PM

@laulo

1) J'ai modifié un zeste le début de la page 2, avec "correction", est-ce que ça te semble plus clair ?

2) Je m'aperçois que je n'ai (toujours) pas fait les illustrations de la page 1 (honte à moi). Puisque tu te fais les exos… si ça se trouve on pourrait mettre les tiennes :roll:

** une purge, je suis une purge ! ** :arrow:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#9 laulo

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 13 October 2010 - 17:35 PM

ba oui biensur g essayer le truc de la case cocher et decocher :deal: he he he.

non, plus serieux en réaliter, depuis une ou deux semaine j'avais deja pris pour habitude d'importer mes class directement moi meme (pourtant la case cocher par default, heuuu.....), mais voila ta facon semble tres pratique et rapide (yes yes yes) mais au final se n'ai pas la technique que je vais garder, par contre pour comprendre la poo avec as3 y a rien a redire, en plus comme tu le disais sur un autre post, c'est tres bien de lire plusieurs solution/tutos pour comprendre, donc encore un grand merKi !! :Hola:

bon, revenons au p'tit t'cho sujet ;)

donc en réaliter j'avais égallement compris qu'il fallais y mettre les 2 clips dans 1 autre clip, donc tester (he he he) et toujours avec un grand crie (lol) voir un hurlement de flash, ba oui l'association du clip masque et photo etait rester. :oops:

ba voili , voilou, l'association est retirer sur les 2 clips, ils sont mis dans un clip qui est associé a la class et hop hop hop (ha non sa fonction que dans la pub pas pour l'as, domage....:( ), sa fonctionne !!!!! :mrgreen: :texas:



bon ba voila je v terminer ton exo sur les bases et demain on refé tou sa sans passer par cette methode, mais l'autre, si tu vois c'est laquelle ?

tien encore une qst, c'est quoi les noms des 2 technique pour manipuler les class

encore merKi merKi et merKi !!!!

#10 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 13 October 2010 - 17:42 PM

Voir le messagelaulo, le 13 October 2010 - 17:35 PM, dit :

tien encore une qst, c'est quoi les noms des 2 technique pour manipuler les class

je ne sais pas de quoi tu parles :D/ :oops:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#11 laulo

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 13 October 2010 - 17:58 PM

ba y a ta methode, passer par une inteface graphique et la methode sans cel de tannoy, loool
donc savoir si il y avait un nom pour chaque technique

sa fait un peu penser au serveur entre un windows et un obunto

#12 laulo

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 14 October 2010 - 08:37 AM

c'est quoi les illustrations que tu veus ?

#13 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 14 October 2010 - 08:50 AM

holà ! Je ne veux pas, je suggère… ;) avec la subtilité et délicatesse qui me caractérisent :mrgreen:

en bas de la page 1, l'exo que tu as fait :

Citation

Ensuite vous n'aurez plus qu'à construire autant de clips que vous voudrez, les associer à cette classe et sans plus une ligne de code vous obtiendrez des choses comme ça. En mieux…

je me souviens bien maintenant : il fallait que je trouve les images libres qui allaient bien, que je cherche une paire d'effets un peu sympa, me suis dit plus tard, et … :oops:

Vraiment : ne prends ma saillie que pour ce qu'elle est : une suggestion au passage.

:)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#14 laulo

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 14 October 2010 - 09:08 AM

Non, mais tkt y a pas de soucYY ;)

donc se que tu appels une illustration, c faire l'exo en vidéo ou mettre la source en .rar ?

#15 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 14 October 2010 - 11:42 AM

Yo ! J'en imagine pas tant, ne serait-ce que le swf de rendu, et si en plus il y a la sources pour d'éventuels prochains qui s'emmêleraient aussi… Là ce serait limite parfait :)

:Hola:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#16 laulo

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 14 October 2010 - 14:19 PM

tu es trop loool, bon le swf ok, mais le fla sa va etre cho, mdrrrrrrr ;)

ba oui biensur que le fla et les class seront avec, un p'tit sky et un coup de vernis sur ma vielle table et je my met , par contre ensuite sa se passe comment je t'envoi le .rar sur ta boite mail ou message de se site ?

var copin:int = 0;

if (copin >= 1){
echo'en mode apperot';
} else {
echo'en mode AS3';
}

#17 laulo

    Ceinture Jaune

  • Members
  • PipPip
  • 21 messages

Posté 15 October 2010 - 07:47 AM

hop hop hop ;)

Fichier(s) joint(s)



#18 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 15 October 2010 - 09:46 AM

Voir le messagelaulo, le 15 October 2010 - 07:47 AM, dit :

hop hop hop ;)

merci, merci, merci :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#19 DanBo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 129 messages

Posté 14 December 2010 - 21:37 PM

Oï Oï

Bonsoir,

Bravo pour ce cours bien structuré.
J'y ai vu des éclaircissements que Thibault Imbert ne mentionne pas, ou alors je lis trop vite.

Limpide, intelligemment construit, très bon sens pédagogique.

J'ai un travail de développement d'analyses de zones colorées sur des images (par exemple identifier des surfaces de couleurs pour créer des clips de décomposition d'images par les couleurs, cartographie, géologie, analyses spectrales), et me voici éclairé.

Si un jour tu abordes un cours sur le traitement de l'image en AS3, vite, un mail pour me prévenir ! (j'ai tenté avec PHP, mais comme j'ai déjà travaillé avec Flash, ma préférence ira là!).

Très bon, j'encourage : 15ur 10, je donne la mention, même si je dois relire quelques passages.

Encore une fois, merci !
Déforestation : on a vu la mort de cyprès ! (haïku zumin, the livre)

#20 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 15 December 2010 - 12:16 PM

:) Laaa ! Du compliment avec mention !
Top ma frime ;)

Ravie que ça t'ait été utile et merci de prendre le temps de l'encouragement, ça fait rudement plaisir :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#21 marque

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 74 messages

Posté 20 April 2012 - 09:45 AM

Bonjour !
Merci pour ce tuto éclairant !
Mais... petite erreur dans le 4e chapître (héritage et surcharge 1) :
ici :

package Interface.BoiteModale
 
ce serait plutôt : "package Interface.BoitesModales"...
Parce que mine de rien, j'ai passé un p'tit moment à chercher... Ce qui aide à comprendre, en fait !
Allez, j'y retourne...
Merci encore !

#22 Loic Aigon

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1662 messages

Posté 20 April 2012 - 13:48 PM

Hello,

Mille mercis pour ce tutorial que je vais lire ( ou essayer de lire comme les 12.657.987 autres documents en souffrance :D ).

Juste un truc qui m'a sauté aux yeux. Tu dis "adjectif" pour "propriété". Cela me gêne un peu.

Soit un objet "chat", le chat peut avoir une propriété "collier" qui à son tour peut avoir une valeur "rouge".
L'adjectif ici serait donc plutôt la valeur d'une propriété. A la limite un chat peut être "noir" ( ou gris la nuit) mais même la, on aurait qqch comme chat.couleur = "noir".

J'enc… surement les mouches ici mais je ne suis pas certain que "propriété" puissent s'exprimer autrement que par…"propriété" :S

Pour avis,

Loic

#23 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 23 April 2012 - 12:14 PM

Voir le messagemarque, le 20 April 2012 - 09:45 AM, dit :


ce serait plutôt : "package Interface.BoitesModales"...

Salut marque :)

:oops: roooo :oops: … Merci de ta vigilance :Hola: c'est encore un coup de "je change d'avis en cours de route, et je ne répercute pas sur le tuto"

Je suis bien contente d'avoir trouvé un allié en ta personne, pcq rien ne dit qu'il ne traine pas encore des nouilleries de cette eau là, n'hésite pas à les signaler comme tu l'as fait.

Toussensembleu ! ;-)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#24 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 23 April 2012 - 12:32 PM

Salut Loïc :)

On est bien d'accord : une propriété peut renvoyer un objet, lui même équipé de propriétés (qui pourraient renvoyer à leur tour des objets), et on atteint là les limites de la métaphore :(

Je suis aussi tout à fait d'accord sur le fait que le meilleur nom à donner à un truc, c'est encore son nom ;)

J'ai choisi cette voie en fonction du public auquel je m'adresse. Il s'entend que les devs se tourneront vers l'ouvrage de T. Imbert (ou d'autres, explicitement dédiés à un lectorat averti).
Ce public - de non-dev- je le connais bien, je l'ai pratiqué en présentiel pendant des années, et je sais que la métaphore ne pose pas de problème et permet de démarrer avec des choses bien stables sur lesquelles construire sa connaissance. Quand les compréhensions commencent à se placer dans la tête, la métaphore est loin et une propriété devient bien… une propriété.A ce moment là ça ne gène plus personne qu'elle renvoie une chaine, un objet, ou n'importe quoi d'autre.


Voir le messageLoic Aigon, le 20 April 2012 - 13:48 PM, dit :

J'enc… surement les mouches ici mais je ne suis pas certain que "propriété" puissent s'exprimer autrement que par…"propriété" :S

Et on est toujours d'accord : oui tu maltraites les mouches :mrgreen: mais c'est pcq tu sais déjà ce qu'est la POO ;-)

N'empêche que merci de la remarque, n'hésite pas à venir en faire d'autres, je les prends systématiquement en considération et la plus part du temps j'apporte les modifs qui conviennent. D'ailleurs si tu penses à une meilleure formulation, propose la, sait-on jamais :roll:


++ :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#25 Arlyss

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 02 May 2012 - 14:31 PM

Bonjour Nataly,

tout d'abord : super taff ! :Hola:

Dans le cadre de mon nouveau boulot je dois me remettre à jour sur ActionScript 3,
(j'étais assez a l'aise avec AS2, avec mes mauvaises habitudes de programmation spaghetti)
et j'ai donc préféré me mettre en mode "noob" pour chercher un guide me permettant de tout reprendre à zéro, en mode POO, pour bosser direct avec de bonnes habitudes et un code propre.

C'est avec une immense satisfaction que j'ai attaqué tes guides (puisque tu ne veux pas les nommer "tutoriaux" ^^).

Je souhaite surtout rebondir *bounce!!* sur le post de marque, à propos de l'erreur "singulier/pluriel" qui s'est glissé dans le guide.
J'ignore si tu l'as corrigé depuis, mais en appliquant à la lettre ce qui était mentionné,
je me suis retrouvé avec des erreurs en sortie...
Et c'est dans l'ensemble du chapitre intitulé "Organiser les classes" qu'il faut harmoniser les termes :
si j'ai bien survolé la suite, il me semble qu'il ne faudrait utiliser QUE le singulier ?

En tout cas c'est ce que j'ai fait, et ça fonctionne ;)

PS :
il serait bon, je crois, de mentionner dans ce même chapitre, où enregistrer chaque groupe de code, ainsi que le premier movieClip créé. J'y suis allé à la devinette, et lorsque j'ai eu l'erreur causée par le singulier/pluriel, j'ai commencé à remettre en doute l'ensemble de mon arbo :mellow:

Hormis ces détails, si on pouvait mettre des étoiles sur les travaux, je te mettrais 5 étoiles sur 5 !
:lol:

#26 Arlyss

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 02 May 2012 - 15:18 PM

C't'encore moi !

Je commente au fur-et-à-mesure de mon avancement...

Dans "La classe mère" -> "Dessiner dans une forme", je m'aperçois que le script ne fonctionne pas pour plusieurs raisons :
1 - Utilisation de "ecran" au lieu de "_ecran" après la précision sur "addChildAt", pour dessiner la forme qui fera écran.
2 - Ajouter " import flash.display.Shape; " sans quoi on a les erreurs :
"...\Outils\Interface\BoiteModale\BoiteModale.as, ligne 8 1046 : Ce type est introuvable ou n'est pas une constante de compilation : Shape." -> [ private var _ecran:Shape; ]
et
"...\Outils\Interface\BoiteModale\BoiteModale.as, ligne 13 1180 : Appel à une méthode qui ne semble pas définie, Shape." -> [ _ecran=new Shape(); ]

ou alors je me trompe lourdement, en ayant zappé quelque chose, et ces corrections marchent mystérieusement ? :/

#27 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 02 May 2012 - 16:55 PM

Salut Arlyss, bienvenue ici !

Oups de zut de honte sur moi :(

J'ai corrigée à la va vite cette histoire de pluriel/singulier sans vérifier, je veux dire exhumer le machin et tester. Donc ça confirme que mes remords d'écrire propre en cours de route, doublés d'inattention à la modif du tuto ont laissé de grosses boulettes.

Merci beaucoup de les remonter au fur et à mesure :Hola: Je vais du coup y regarder de vraiment près histoire de ne pas dégoûter les prochains, ce qui n'est vraiment pas le but ;)
J'espère que les sources jointes tournent, elles… Ce serait un comble que non :wacko:

Citation

il serait bon, je crois, de mentionner dans ce même chapitre, où enregistrer chaque groupe de code, ainsi que le premier movieClip créé. J'y suis allé à la devinette, et lorsque j'ai eu l'erreur causée par le singulier/pluriel, j'ai commencé à remettre en doute l'ensemble de mon arbo

Oui ! Bonne idée ! :)
C'est typiquement le genre de truc dont on ne se rend pas forcément compte à l'écriture, même si ça devrait. Si en plus j'assaisonne de fautes genre celles que tu as levées, ça vire à la cata. Sincèrement encore merci de prendre ainsi part à améliorer la qualité du wiki, rien de plus utile qu'un vrai retour "utilisateur"

Et puis merci aussi des compliments (j'adore ça ;)) même si je n'écris pas pour pêcher de la reconnaissance, un coucou content de temps en temps ça remet de l'essence dans le moteur ;)

N'hésite pas à revenir rendre compte d'autres sottises que tu croiserais ou de suggestions de précisions à apporter.

++ :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#28 Arlyss

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 03 May 2012 - 16:57 PM

Pas de problèmes ^^

j'en suis à la diffusion des évènements, et RAS.
Au passage j'ai un peu amélioré l'exemple en tatonnant
(je tatonne pas longtemps, ça me rassures :lol: )
Du genre aligner l'alerte toujours au milieu (vertical&horizontal)
de la scene, peu importe la taille de la scene.
Ou rendre la "saisie d'un texte répété dans l'alerte" optionnel,
juste en ajoutant un setteur, pour éviter trop de lignes dans le fla.

:)

#29 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 04 May 2012 - 14:23 PM

Parfait, tu m'en vois ravie. C'est précisément l'idée, rendre le lecteur autonome. Je vois que tu as appris à pêcher*, objectif atteint.

Me reste plus qu'à aller faire le ménage dans ce tuto :)

*(métaphore habituelle : donner du poisson ou apprendre à pêcher ;))
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#30 Arlyss

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 07 May 2012 - 14:44 PM

Me voila rendu à "Classe liée", exemple du SimpleButton, chapitre "Le .fla".
Je bloque :huh:

Post édité j'ai "avancé" depuis...
voir post suivant

(désolé pour le post inutile, mais je pensais "compléter" le premier avec le second <_< )

#31 Arlyss

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 09 May 2012 - 09:12 AM

En fait, j'ai essayé de mettre le fichier AS dans une arborescence :
Outils
\ Interface
\ BoutonPerso
\ BoutonPerso.as

Mais ça aurait du marcher quand même, non ?
En enregistrant le chemin vers le dossier "outils" dans les paramètres actionScript,
et en mettant "Interface.BoutonPerso.BoutonPerso" dans "classe de base" du bouton...

J'en suis là :

Propriétés du symbole BoutonPerso :
Nom : BoutonPerso
Classe : BoutonPerso
Classe de base : Interface.BoutonPerso.BoutonPerso

Script dans le fla :

var bouton1:BoutonPerso=new BoutonPerso();
addChild(bouton1);
bouton1.x=bouton1.y=50;
 

Script dans le as :

package Interface.BoutonPerso {

import flash.display.SimpleButton;

public class BoutonPerso extends SimpleButton {

  public function BoutonPerso(pTitre:String="osef"):void {
   trace("constructeur BoutonPerso (titre : "+pTitre+")");
  }
}
}
 

Ca fonctionne... si je n'indique PAS de titre en faisant new BoutonPerso("hello!");
Si je le fais, j'obtiens une erreur "Nombre d'arguments incorrect. 0 attendus."

Si je comprends bien, c'est parce que flash utilise une classe BoutonPerso vide qu'il génère,
car il ne retrouve pas la vraie classe BoutonPerso que j'ai créé dans mon dossier "/Outils/Interface/BoutonPerso".

j'ai essayé de mettre en classe de base :
- rien
Flash génère la classe, mon fichier n'est pas utilisé
- Flash.SimpleButton
Flash génère la classe, mon fichier n'est pas utilisé
- Interface.BoutonPerso
Impossible de trouver la définition de la classe de base
- Interface.BoutonPerso.BoutonPerso
Définition de classe détéctée, mais pas pour la Classe "BoutonPerso" : mon fichier est reconnu mais n'est pas utilisé

Alors.... comment faire ? :/

Si je m'obstine plus, je vais m'emmeler et ne plus rien comprendre (ça a commencé je crois :wacko: )

#32 marque

    Ceinture Verte

  • Members
  • PipPipPipPip
  • 74 messages

Posté 11 May 2012 - 16:15 PM

J'avais été contraint de m'arrêter en plein milieu, alors je recommence le tuto depuis le début pour être sûr de comprendre, et... singulier, pluriel...

package Interface.BoitesModales {
          import flash.display.MovieClip;

          public class BoitesModales extends MovieClip {
                    public function BoiteModale ():void {
                           trace("passage constructeur BoiteModale ");
                    }
          }
 

Ce ne serait pas plutôt :

          public class BoiteModale extends MovieClip
 
(idem pour

package Interface.BoitesModales {

          public class BoiteAlerte extends BoitesModales
 
qui serait plutôt (non, pas le chien ;-) ) :

package Interface.BoitesModales {

          public class BoiteAlerte extends BoiteModale
 

Voilà, j'y retourne !
Et encore merci pour ce travail offert aux mal-comprenants dans mon genre !

#33 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 28 June 2012 - 14:45 PM

Honteuse et confuse :oops:

J'ai disparu, comme ça, sans préavis, en laissant tout en l'état.

Vraiment désolée d'autant que je me serais bien passée des circonstances qui ont présidées à l'abandon. Pour aller vite disons que l'immeuble mitoyen de celui où j'habite, fait l'objet de travaux (gros œuvre) excessivement bruyant. Quand je dis excessivement c'est dans son acception première : à l'excès. J'ai donc fini par m'écrouler avec plus un neurone en état de marche (déjà qu'il ne m'en restait pas tant :P).

J'ai cru ces deux derniers jours que les hostilités avaient cessées (au bout de trois trimestres on pouvait nourrir un espoir non ?), et re-investi les lieux. Evidemment après une si longue absence, j'ai perdu le fil des fils, et je ne découvre qu'aujourd'hui tes appels restés sans réponse.

Je suis bien surprise d'avoir publié des sources pas fonctionnelles, mais il faut croire que c'est ce qui s'est passé. Je vais donc vérifier tout ça entre deux assauts de décibels (oui, j'ai bien écrit plus haut "j'ai cru", et j'avais tort) et je reviens faire le point.

Toutes mes scuz renouvelées… :?
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#34 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 28 June 2012 - 16:06 PM

Avant de me jeter ds les grandes manœuvres vérificatoires ;) je vais commencer par répondre à cette question de nom de Package


Voir le messageArlyss, le 09 May 2012 - 09:12 AM, dit :

En fait, j'ai essayé de mettre le fichier AS dans une arborescence :
Outils
\ Interface
\ BoutonPerso
\ BoutonPerso.as

Mais ça aurait du marcher quand même, non ?


oui :) ça aurait du marcher, même si tu te compliques en donnant le même nom à un paquetage qu'aux classes qu'il contient ;)

ce que tu décris ensuite devrait fonctionner, tu as du te monter dessus à force de tests et de modifs consécutifs (on oublie tj ou d'enregistrer ou de modifier un truc et on finit par ne plus savoir épeler son prénom ;) )

Citation

Ca fonctionne... si je n'indique PAS de titre en faisant new BoutonPerso("hello!");
Si je le fais, j'obtiens une erreur "Nombre d'arguments incorrect. 0 attendus."

Si je comprends bien, c'est parce que flash utilise une classe BoutonPerso vide qu'il génère,
car il ne retrouve pas la vraie classe BoutonPerso que j'ai créé dans mon dossier "/Outils/Interface/BoutonPerso".

Excellente déduction ! :Hola:

mais je vois apparaitre un dossier Outils… c'est peut-être de là que ça vient… l'as tu ajouté comme chemin source depuis les paramètres de publication ? :roll: (moi, je crois que c'est ça, moi je crois que…)

Ocazou, je synthétise (en prenant un nom de répertoire différent de celui de la classe pour meilleure lisibilité) :

soit une arborescence :
Image attachée: hierarchie.png

BoutonPerso.as est ds : Interface/LesBoutons

le paquetage, c'est bien cette imbrication de répertoires qu'on représente en les séparant par des points comme tu l'avais fait :

package Interface.LesBoutons {

et ds le champ classe des propriétés du bouton, on reproduit ce chemin avant le nom de classe elle même :
Interface.LesBoutons.BoutonPerso

Donc tu avais tout bon. :roi:

A toutes fins utiles je joins un zip avec les deux versions (BoutonPerso.BoutonPerso et LesBoutons.BoutonPerso)

++ :)

Fichier(s) joint(s)

  • Fichier joint  demos.zip   29.57 Ko   53 téléchargement(s)

Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#35 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 28 June 2012 - 17:25 PM

Voir le messageNataly, le 02 May 2012 - 16:55 PM, dit :


Voir le messageArlyss, le 02 May 2012 - 14:31 PM, dit :

PS :
il serait bon, je crois, de mentionner dans ce même chapitre, où enregistrer chaque groupe de code, ainsi que le premier movieClip créé. J'y suis allé à la devinette, et lorsque j'ai eu l'erreur causée par le singulier/pluriel, j'ai commencé à remettre en doute l'ensemble de mon arbo :mellow:

Oui ! Bonne idée ! :)

Sauf que sur le point de le faire je me suis aperçue que c'était déjà guidé dans le détail chapitre organiser les classes et que, pour le fla, il est précisé qu'on le met n'importe où (où ça nous arrange, ça revient à ça non ?)

Si (après tout ce temps) tu repassais par là et que je t'ai mal compris, remets une couche ! ;)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)