Accueil > Forum > > > > Création de fonction - Je n'arrive pas
Création de fonction - Je n'arrive pas
lundi 26 octobre 2009 à 23:08:24 |
Création de fonction - Je n'arrive pas

Kangouroops
|
Bonjour,
Je travaille dans un document en AS3 et j'ai quelques soucis pour la création de fonction.
Il faut savoir que je débute, et donc mon soucis est surement que je m'y prends mal, et pas juste un petit truc qui manque.
Voici mon soucis:
Code ActionScript : function relacherCheveuxDroite(pEvt:Event):void {
if (sexe_homme){
if (homme.homme_cheveux.currentFrame==homme.homme_cheveux.totalFrames){
homme.homme_cheveux.gotoAndStop(1);
}
else {
homme.homme_cheveux.nextFrame();
}
}
else {
if (femme.femme_cheveux.currentFrame==femme.femme_cheveux.totalFrames){
femme.femme_cheveux.gotoAndStop(1);
}
else {
femme.femme_cheveux.nextFrame();
}
}
}
Dans mon code, j'ai très souvent cette fonction qui revient à quelques détails près.
Les détails sont "Cheveux" et "cheveux", c'est à dire que je vais avoir exactement la même fonction où "Cheveux" et "cheveux" vont être remplacés par "Yeux" / "yeux", "Bouche" / "bouche", etc...
Du coup, j'ai essayé cela:
Code ActionScript : function droite("Partie", "partie"):void {
function relacher"Partie"Droite(pEvt:Event):void {
if (sexe_homme){
if (homme.homme_"partie".currentFrame==homme.homme_"partie".totalFrames){
homme.homme_"partie".gotoAndStop(1);
}
else {
homme.homme_"partie".nextFrame();
}
}
else {
if (femme.femme_"partie".currentFrame==femme.femme_"partie".totalFrames){
femme.femme_"partie".gotoAndStop(1);
}
else {
femme.femme_"partie".nextFrame();
}
}
}
}
droite("Cheveux", "cheveux");
De telle sorte que chaque fois qu'il y ait écrit partie, ce soit lié au paramètre mis entre parenthèse... Mais apparemment ça ne fonctionne pas comme ça.
J'ai un peu farfouillé l'aide de flash, mais étant donné que je débute, pour le moment je ne suis parvenu à rien.
Si quelqu'un pouvait m'expliquer où je me trompe je lui en serait très reconnaissant afin que je puisse corriger mon code je lui en serai très reconnaissant.
Par avance je vous remercie.
Amaury.
|
|
mardi 27 octobre 2009 à 06:59:19 |
Re : Création de fonction - Je n'arrive pas

Twinspirit
|
Bon, tout d'abord, il ne faut pas imbriquer de functions l'une dans l'autre mais une après l'autre.
Ensuite, tu ne peux pas mettre de guillemets dans la déclaration de function. Par contre, tu peux déclarer une variable.
Dans ton système, je pense qu'il te faut déclarer un tableau contenant les différentes coiffures :
var coiffures:Array = [coiffe,relache,rase]
Puis tu classe tes images dans le même ordre (pour l'homme et la femme, tu fais pareil : image coiffee en frame 1, relache en frame 2, etc)
ensuite, tu basera tes comparaisons sur l'index du tableau :
//
function droite(clip:MovieClip, coiffure:String):void
{
var clipAffecte:MovieClip = clip;
//pour chaque valeur du tableau, on compare
for (var i:int=0;i<coiffures.length; i++)
{
//i+1 car les tableaux commencent à 0
if (coiffures[i+1] == coiffure)
{
//on se rend à l'image voulue
clipAffecte.gotoAndStop(i+1);
}
}
}
//On peut appeler la fonction sur femme ou homme
droite(homme.cheveux, relache);
droite(femme.cheveux, rase);
Je me demande si c'est ce que tu veux...
TwFlash - Développeur ActionScript3 freelance.
Mon blog : Twin Flash Blog
Mon site : www.twflash.fr
|
|
mardi 27 octobre 2009 à 07:01:02 |
Re : Création de fonction - Je n'arrive pas

Twinspirit
|
Oups,
Code ActionScript :
desolé pour le code non balisé !
TwFlash - Développeur ActionScript3 freelance.
Mon blog : Twin Flash Blog
|
|
mardi 27 octobre 2009 à 10:56:26 |
Re : Création de fonction - Je n'arrive pas

Kangouroops
|
Salut, et déjà un grand merci de t'intéresser à mon problème !
tout d'abord, il ne faut pas imbriquer de functions l'une dans l'autre mais une après l'autre
Roger, je vais le graver dans ma petite tête :)
Ensuite, tu ne peux pas mettre de guillemets dans la déclaration de function. Par contre, tu peux déclarer une variable.
Je croyais qu'avec les guillemets je déclarais une variable, huhu... Mais je crois que je commence à saisir comment on fait.
Dans ton système, je pense qu'il te faut déclarer un tableau contenant les différentes coiffures
En fait, je crois que je n'ai pas besoin de tableau, mais c'est parce que je me suis surement mal exprimé dans mon premier message.
J'ai déjà une fonction qui me permet de faire défiler mes frames pour faire défiler les coiffures.
En fait, ce que j'aimerai c'est que cette fonction soit définie avec 2 paramètres, ce qui me permettrait de l'appliquer aux Yeux, à la bouche, et à la tenue.
Je me suis inspiré du code que tu m'as proposé pour faire ça:
Code ActionScript : function droite(clip:MovieClip, clip2:MovieClip):void {
var clipAffecte:MovieClip = clip;
var clipAffecte2:MovieClip = clip2;
if (sexe_homme){
if (homme.clipAffecte.currentFrame==homme.clipAffecte.totalFrames){
homme.clipAffecte.gotoAndStop(1);
}
else {
homme.clipAffecte.nextFrame();
}
}
else {
if (femme.clipAffecte2.currentFrame==femme.clipAffecte2.totalFrames){
femme.clipAffecte2.gotoAndStop(1);
}
else {
femme.clipAffecte2.nextFrame();
}
}
}
function relacherCheveuxDroite(pEvt:Event):void {
droite(homme_cheveux, femme_cheveux);
}
Seulement je me retrouve avec ces deux erreurs:
1120: Accès à la propriété non définie homme_cheveux.
1120: Accès à la propriété non définie femme_cheveux.
Je ne comprends pas, je croyais pourtant m'être bien inspiré.
Auriez-vous une idée de quelle pourrait être mon erreur ?
L'idée c'est bien qu'en écrivant:
Code ActionScript : function relacherCheveuxDroite(pEvt:Event):void {
droite(homme_cheveux, femme_cheveux);
}
Je lance cette fonction:
Code ActionScript : function relacherCheveuxDroite(pEvt:Event):void {
if (sexe_homme){
if (homme.homme_cheveux.currentFrame==homme.homme_cheveux.totalFrames){
homme.homme_cheveux.gotoAndStop(1);
}
else {
homme.homme_cheveux.nextFrame();
}
}
else {
if (femme.femme_cheveux.currentFrame==femme.femme_cheveux.totalFrames){
femme.femme_cheveux.gotoAndStop(1);
}
else {
femme.femme_cheveux.nextFrame();
}
}
}
Dur dur de passer de l'autre côté de la barrière quand on est plutôt graphiste de formation.
Par avance, je vous remercie :)
|
|
mardi 27 octobre 2009 à 18:41:34 |
Re : Création de fonction - Je n'arrive pas

Twinspirit
|
Réponse acceptée !
C'est que tu ne commences pas avec le plus facile !
Bon, tout d'abord, avec cette fonction :
Code ActionScript : function relacherCheveuxDroite(pEvt:Event):void {
droite(homme_cheveux, femme_cheveux);
}
tu lances plutôt cette fonction :
Code ActionScript : function droite(clip:MovieClip, clip2:MovieClip):void {
var clipAffecte:MovieClip = clip;
var clipAffecte2:MovieClip = clip2;
if (sexe_homme){
if (homme.clipAffecte.currentFrame==homme.clipAffecte.totalFrames){
homme.clipAffecte.gotoAndStop(1);
}
else {
homme.clipAffecte.nextFrame();
}
}
else {
if (femme.clipAffecte2.currentFrame==femme.clipAffecte2.totalFrames){
femme.clipAffecte2.gotoAndStop(1);
}
else {
femme.clipAffecte2.nextFrame();
}
}
}
Le code d'erreur
Code ActionScript : 1120: Accès à la propriété non définie homme_cheveux.
1120: Accès à la propriété non définie femme_cheveux.
Signifie que les variables homme_cheveux et femme_cheveux ne sont pas déclarées.
D'aprés ton code, ces variables désignent un clip "homme_cheveux" imbriqué dans un clip "homme" et un clip "femme_cheveux" imbriqué dans un clip "femme". (ça me semble être ça, non ?).
Afin de pouvoir utiliser ces noms dans le code, il faut avoir effectué une liaison
- soit avec clic droit sur ton clip dans la bibliothèque -->liaison --> cocher exporter pour actionScript, ce qui devrait être fait avec tes clips homme et femme, sauf s'ils sont d'entree sur la scene.
- soit en nommant les clips.
Ici, c'est la seconde solution qui importe d'abord, je pense. Pour voir, double clique sur ton clip "homme" ou ton clip "femme". Ensuite, sélection ton clip "homme_cheveux" ou "femme_cheveux".
Un fois le clip sélectionné, en bas, dans le panneau propriété, à gauche, il y a un emplacement pour le Nom d'occurrence. Il doit contenir "homme_cheveux" pour le clip "homme" et "femme_cheveux" pour le clip "femme".
Mais cela ne va pas regler ton problème. Il te faut encore changer ceci
Code ActionScript : function relacherCheveuxDroite(pEvt:Event):void {
droite(homme_cheveux, femme_cheveux);
}
car ici, tu appelles un MovieClip(homme-cheveux) placé sur la scene ! Or il ne l'es pas, il est dans le MovieClip(homme). Donc, la bonne façon d'appeler ta fonction est :
Code ActionScript : function relacherCheveuxDroite(pEvt:Event):void {
droite(homme.homme_cheveux, femme.femme_cheveux);}
Hum... Allez, courage, ça va marcher !
TwFlash - Développeur ActionScript3 freelance.
Mon blog : Twin Flash Blog
|
|
mardi 27 octobre 2009 à 23:26:01 |
Re : Création de fonction - Je n'arrive pas

Kangouroops
|
Salut !
Un énorme merci, j'ai pu faire marcher mon code grâce à toi.
C'est à dire en écrivant homme.homme_cheveux au lieu de homme_cheveux et en modifiant là où il fallait dans la fonction.
Du coup... ben merci beaucoup, ça va me raccourcir mon code !
|
|
mardi 27 octobre 2009 à 23:28:29 |
Re : Création de fonction - Je n'arrive pas

Twinspirit
|
Très content d'avoir pu t'aider ;)
Ça vaut le coup de s'y mettre à l'as3, tu verras...
TwFlash - Développeur ActionScript3 freelance.
Mon blog : Twin Flash Blog
Mon site : TwFlash
|
|
mercredi 28 octobre 2009 à 21:30:00 |
Re : Création de fonction - Je n'arrive pas

Kangouroops
|
Oui, j'imagine que ça vaut le coup, d'ailleurs, j'essaye doucement de m'y mettre.
Mais quand on est surtout du côté dessin, je dis surtout car j'ai 2h/semaine d'apprentissage de processing, ce n'est pas évident.
Heureusement, il y a des forums où l'on trouve des personnes prêtes à partager leur expérience ;)
|
|
Cette discussion est classée dans : code, partie, homme, cheveux, femme
Répondre à ce message
Sujets en rapport avec ce message
COUPLE DE DANSEURS(HOMME ET FEMME) EN MOUVEMENT. [ par INFORGOS ]
Bonjour!Recherche le couple de danseurs(homme et femme), comme dans l'exemple de Macromédia: frame_by_frame EN MOUVEMENTMERCIA BIENTOTVICTORIO
help code formulaire template flash [ par flashie ]
Bonjour,Voilà j'ai un template en flash que j'ai completement modifié avec à la fin le formulaire de contact tout ce qu'il y a de plus simple.Votre No
Masquer une partie d'un SWF importé [ par MisterSnow ]
Bonjour à tous, J'ai un SWF que je dois importer dans une autre scène. Jusque là rien de compliqué en utilisant le code suivant il s'importe bien dan
créer une images avec plusieurs autre [ par newport1905 ]
Bonjour, j'ai cherché sur le site si je trouvais plusieurs bout sde code pour créer une animation mais je n'ai rien trouvé.. Ce que j'aimerais faire,
Error #1034: Echec de la contrainte de type : conversion de flash.events::Event@2977c241 en ** impossible. [ par Grongol ]
Bonjour à tous. Je suis étudiant en informatique et je débute en flash... J'utilise adobe flash C5.5 et j'ai un projet de petit jeu avec un vaisseau q
Code as jeu flash style chasse au canard [ par ibrah26 ]
Bonjour, Je suis en train actuellement de créer un jeu flash du style chasse au canard... Le problème, c'est qu'à la place de simple canard, j'ai envi
zone de saisie obligatoire [ par fenfen_159 ]
Bonjour à toutes et tous, Je suis en train de bosser sur un projet et je bloque un peu... Je crée un questionnaire ou l'utilisateur dois rentrer un
Flash et php ! [ par orko38450 ]
Bonjour à tous, voilà mon problème: j'ai une fichier php qui va cherche 3 chose sur un stream shoutcast : [code=php]<?php $ip = "serveur"; $port =
bouton play/pause [ par kirkhugle ]
Bonjour , Je suis graphiste non programmeur et j'ai quelques soucis avec l'as3. J'ai un clip animé (nom d'occurrence : animation) sur une image clé
Probleme code flash [ par tatenvoyage ]
Bonjour, j'ai sur un fichier flash un code de compte a rebours qui marche mais quand je l'insère dans un autre fichier fla celui ci ne marche plus du
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|