Forums Développement Multimédia

Aller au contenu

clip qui perd sa position sur une image clé, quand j'utilise scaleX

gotoandplay scaleX bouton position

6 réponses à ce sujet

#1 Lina

    Ceinture Orange

  • Members
  • PipPipPip
  • 33 messages

Posté 09 April 2015 - 19:13 PM

Bonjour,

Je viens de commencer l'AS3 et je galère un peu.

Je suis en train de coder un petit jeu d'habillage de poupée.

Ce que je cherche à faire, c'est de créer différents sets de vêtements sur des images de ma timeline, pour cela j'ai créé des étiquettes (set0, set1, set2...) qui sont accessibles via des boutons (les numéros en haut à gauche)

Le souci que j'ai, c'est que les vêtements semblent perdre la position que je leur ai donné sur les sets 1 et 2 pour prendre celle du set0. J'arrive pourtant bien sur les sets 1 et 2 avec mes boutons (j'ai numéroté chaque image clé pour etre sure).

J'ai remarqué que ce comportement ne se produit que lorsque j'utilise scaleX ou scaleY, du moins c'est l'impression que j'ai... mais vu que je début l'AS3, j'ai probablement loupé quelquechose. J'ai pas mal cherché sur différents forums, mais je ne trouve rien qui ressemble à mon problème.

Je joins mon fichier, si quelqu'un peut voir où je me suis trompée, ou juste me donner une piste de réfléxion. Fichier joint  test_sets_as3.fla   157.77 Ko   3 téléchargement(s)

Merci d'avance pour votre aide

#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6996 messages

Posté 09 April 2015 - 19:48 PM

Bonsoir,

Réponse classique, again and again and again.....
Utiliser les frames du scénario pour autre chose que de l'anim c'est mal, un point c'est tout... ;)

Citation

Ce que je cherche à faire, c'est de créer différents sets de vêtements sur des images de ma timeline
Oublie la timeline, place tes sets de vêtments dans un clip et colle les au chaud dans la biblio avec un export pour AS (voir doc de Flash).
Par exemple, tous les "t-shirts" dans un clip, un sur chaque frame (pour le coup) du scénario du clip.
Sur ta "poupée", tu collera le même clip, suffira de savoir sur quel t-shirt de la liste on a cliqué pour l'afficher sur la "poupée" (ou drag & drop).

Utiliser les frames ce n'est pas bon, pour plein de raisons, mais prenons ton exercice en exemple, tu ne va pas coder sur chaque frame tous les états possibles de ton perso et les différentes associations de fringues, tu n'en sortirai pas et ça rendrait le tout extrémement rigide si tu veux modifier des choses ou en ajouter. Dès que tu va commencer à toucher à la programmation je te recommande d'essayer de te passer du support visuel que sont les frames du scénario, on peut très bien ajouter ou retirer des "objets" à la volée (voir "addChild" et "removeChild") avec le code, je serais toi j'essaierai de partir sur cette voie.

Bon courage.

#3 Lina

    Ceinture Orange

  • Members
  • PipPipPip
  • 33 messages

Posté 10 April 2015 - 06:50 AM

Merci pour ta réponse, en effet en le fesant je me suis rendue compte de certaines limitations dans le fait d'utiliser les frames de la timeline (ne serait-ce qu'oublier de renommer un clip -_-,).
Après je suis pas certaine de l'interêt de mettre tous les t-shirts dans le même clip?
Mais non je ne vais pas coder toutes les associations possibles, les sets il n'y en aura qu'une dizaine maximum, juste les tenues les plus jolies que j'aurais choisi préalablement, c'est pour ça que sur le coup je pensais m'en sortir assez simplement avec les images clé en positionnant simplement les tenues en question à la main, après au joueur de les modifier..
Je me suis un peu penchée sur addChild et remove Child, mais je ne sais pas trop ce que je vais en faire pour l'instant, c'est intéressant à connaitre en tout cas :)

#4 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6996 messages

Posté 10 April 2015 - 08:14 AM

Coucou,

Citation

Après je suis pas certaine de l'interêt de mettre tous les t-shirts dans le même clip?
Ca dépend, tu serait un peu plus avancée en programmation, je te dirais de faire une feuille de sprites que tu découpe à la volée pour afficher ce que tu veux, mais si tu débute, l'étape intermédiaire entre "tout à la timeline" et "tout en code" c'est d'utiliser la timeline des clips comme des sortes de réservoirs (tes feuilles de sprites) où on met les objets d'une même famille. Pour afficher un des objets de cette famille on fait une occurence (sorte de copie) du clip et on lui demande d'aller à la frame où se trouve l'objet à afficher (gotoAndStop). Attention ceci n'est efficace dans l'apprentissage que si on ne place pas autre chose que des visuels sur les frames (pas de code).

Citation

Je me suis un peu penchée sur addChild et remove Child, mais je ne sais pas trop ce que je vais en faire pour l'instant,
Ca te permet d'ajouter (addchild) et retirer (removechild) des occurences sur la scène de ton projet par l'intermédiaire du code.

Pour faire simple, voici un rapide exercice.

1 - créer les clips/feuilles de sprites, un clip pour chaque type d'objet, un objet sur chaque frame du clip.
2 - exporter chaque clip pour Actionscript (permet de les utiliser avec le code sans les poser à la main sur la timeline) et leur donner un nom de classe (imaginons pour l'exemple le clip "Robes" qui contiendra des robes, attention la majuscule est importante)
3 - commencer à rédiger un petit code simple pour tester :

supprimer tout ce qui se trouve sur la timeline (il n'y a rien d'affiché à la main)
vérifier qu'on à bien nos clips "reservoirs" au chaud dans la bibliothèque et qu'ils sont bien exportés pour AS
sur la première frame du scénario principal (qui est donc vide), ouvrir le panneau d'actions et taper :


var robes:MovieClip = new Robes(); // crée une occurence "robes" du clip "Robes"
addChild(robes); // ajoute cette occurence à la liste d'affichage (la scène)
robes.gotoAndStop(3); // affiche la frame trois de l'objet "robes"
robes.x = 120; // place la robe à 120 pixels du bord gauche de l'écran.
 

Voilà pour le départ, ceci devrait te permettre déjà de faire beaucoup plus de choses en créant/ajoutant/supprimant/modifiant/positionnant des objets via le code et uniquement le code.

A partir de cette base, si tu veux en savoir un peu plus, je te recommande d'essayer l'exercice du PONG ici : http://forums.mediab...rcice_-_le_pong
C'est en général par ce jeu qu'on commence son apprentissage car c'est le plus simple à mettre en place.
Si tu accroche, alors fais toi le reste de la série qui se trouve ici : http://forums.mediab...shplatform/jeux
Il y a différents niveaux de difficulté, commence par des choses simples comme le TAQUIN ou le MEMORY.

Bon courage.

#5 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6996 messages

Posté 10 April 2015 - 15:52 PM

Re,

J'ajouterai que, si tu veux en apprendre plus, la bonne solution est de se dire "comment je pourrais faire si je n'ai pas la timeline de Flash ?"
De là tu pourra résoudre tous tes problèmes, dis toi juste que "oui c'est possible de le faire sans la timeline", donc : "trouver comment faire sans".
Une fois cette étape franchie on peut recauser de conception de jeux vidéo ;)
A toi de te donner des petits défis pour arriver à tes fins progressivement.

#6 archiroc

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 10 April 2015 - 22:16 PM

Le truc dur à vivre M Spi avec addchild,
c'est ce drôle de sentiment de ne pas garder le contrôle de ces gamins.
sauf à passer par des names ou autres subversions,c'est pas évident pour qui ne conçoit pas ses enfants comme des objets d'en perdre la trace...
bref, le concept est acquis. La mise en ligne pas si évidente.

#7 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6996 messages

Posté 11 April 2015 - 08:35 AM

Citation

,c'est pas évident pour qui ne conçoit pas ses enfants comme des objets
En fait dans Flash tout est objet.... dès que tu pose un clip sur la scène, en arrière boutique c'est l’occurrence d'un objet que tu crée.
La timeline et la scène sont juste là pour apporter une aide visuelle à ceux qui ne font pas de programmation, c'est pour ça que Flash à été créé, permettre à des personnes qui ne sont pas des développeurs, de monter facilement des animations légères pour le Web. Dès qu'on détourne Flash de son utilité première, par exemple pour faire des jeux, l'IDE n'est plus adapté, essayer de mixer IDE et code impose très rapidement des limites. La programmation c'est justement faire de l'abstraction, dans le cas de Flash ça permet de s'affranchir des limites imposées par l'IDE, si tu as peur de perdre de vue tes objets il faut les ranger quelque part, par exemple dans un tableau, comme ça où qu'ils soient tu sais que tu peux les retrouver via le tableau. Que tes objets soient sur la scène (visuellement parlant), dans la bibliothèque, ou dans un tableau que tu aura toi même créé, ne change rien, ils sont dans un conteneur.



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

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

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP