Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2489 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [résolu] Action script pour un graphique + class onEnterFrame

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Action script pour un graphique + class onEnterFrame

n°1641386
le_chanceu​x
Posté le 12-11-2007 à 10:53:41  profilanswer
 

Bonjour je ne trouve pas ce que je cherche sur google.
C'est tres simple, j'ai une image, et j'en met une autre dessus (ou dedans selon le point de vue ), je voudrais que lorsque je clique sur cette derniere image, elle soit remplacé par une 3ieme.
Suis-je "obligé" de transformer ca en clip ou bouton? je voudrai juste faire un flash en AS pour que ca soit simple (je possede flash 8.0) (en gros un calque AS et un calque contenant une seule frame qui a toutes mes images ou clips. (les bouton me font planter comme quoi il y a des répétitions je n'arrive pas à les utiliser)
 
j'ai essayé ceci :

Code :
  1. var bouton = new b_demarrer_off();
  2. this.bouton.onRelease () {
  3.  this.bouton = new b_demarrer_on();
  4. }
  5. où b_demarrer_off est mon bouton relevé (enfin sa classe exporté pour AS2.0)
  6. et b_demarrer_on est mon bouton cliqué(idem)


C'est juste un test mais ca plante :

Code :
  1. **Erreur** Séquence = Séquence 1, calque = actions, image = 1 :Ligne 3 : Erreur de syntaxe.
  2.      this.bouton.onRelease () {
  3. **Erreur** Symbole = demarrer, calque = Layer 1, image = 1 :Ligne 1 : Impossible de charger la classe ou l'interface 'b_demarrer_off'.
  4. Total des erreurs ActionScript : 2   Erreurs signalées : 2


 
Dois-je definir des coordonnées? ou juste "glisser-deposer" mon image initiale (le bouton relevé que j'ai exporté pour AS2.0 sous le nom b_demarrer_off sur mon animation suffit?)
 
 
voila merci de vos reponses :)
Paul


Message édité par le_chanceux le 13-11-2007 à 15:16:50
mood
Publicité
Posté le 12-11-2007 à 10:53:41  profilanswer
 

n°1641493
Zedlefou
In cabbage we trust !
Posté le 12-11-2007 à 12:24:51  profilanswer
 

Et ben heureusement que ton code est un peu plus clair que ton francais, sinon je pigeais pas UN mot de ce post ...
 
Donc erreur de syntaxe :
 this.bouton.onRelease () {
Il faut mettre  
this.bouton.onRelease = function(){
 
et pour ta classe, il faut l'importer parce que la, il ne la trouve pas.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1641501
le_chanceu​x
Posté le 12-11-2007 à 12:30:41  profilanswer
 

désolé j'ai du mal à m'exprimer sur le flash :S
comment importer une classe?
(j'ai tapé mon erreur dans google où j'y ai vu qu'il faut ajouter le chasspath dans les paramettres mais ca ne change rien à mon erreur :(
 
merci encore pour ta reponse!
Paul

n°1641532
Zedlefou
In cabbage we trust !
Posté le 12-11-2007 à 13:23:10  profilanswer
 

http://forum.hardware.fr/hfr/Progr [...] 9483_1.htm


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1641670
le_chanceu​x
Posté le 12-11-2007 à 15:52:38  profilanswer
 

super tout marche bien merci, une derniere chose :
puis-je creer un element de type bouton ou clip, mais en tableau?
cad que je place mon "element" sur ma feuille de travail, dont tous les elements ont ._visible = false; et lorsque je veux, j'en rend visible chaqun parfois de temps en temps?
(ou je suis obligé de creer un clip avec des frame et faire des goToAndStop à chaque fois?)
 
merci

n°1641687
Zedlefou
In cabbage we trust !
Posté le 12-11-2007 à 16:01:41  profilanswer
 

Bah essaie, tu veras bien ....
Vu que j'ai pas trop compris la question :/


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1641715
le_chanceu​x
Posté le 12-11-2007 à 16:30:21  profilanswer
 

erf c'est un peu galere le flash '-_- en plus les tuto ne font jamais ce que j'essaye de faire...
 
là j'en suis à un clip qui ne s'arrete jamais lorsque je fait un monclip.play() je ne peux pas determiner la fin bien que lorsque je le lance dans ma bibliotheque il s'arrete bien comme il faut... (meme avec un timer et un monclip.stop() ca ne s'arrete pas de tourner...)

n°1641860
alpseb
Posté le 12-11-2007 à 22:52:35  profilanswer
 

mmm, tu peux mettre un stop direct dans ton clip...
 
sinon, t'es pas obligé de faire un clip avec des frames et des goto !!
tu peux sans problèmes faire des _visible false et afficher les ellements que quand t'en a besoin...
 
voir ne pas les mettre sur le scène et aller les chercher dans la bibliotheque quand t'en a besoin avec attachMovie() (ou displayliste.addChild() en as3)

n°1641979
le_chanceu​x
Posté le 13-11-2007 à 09:50:00  profilanswer
 

oui effectivement le fait que le clip tournai en boucle etait du à un goToAndPlay que je n'avais pas placé moi meme (mais un pote graphiste qui l'a fait).
Pour l'instant j'ai fait un clip avec des frames. ca me fait une seule fonction à appeller et seulement 3occurence de mon clip (qui contient 12images/frames au choix) donc c'est plus simple de tout reunir ^^
 
Comment savoir lorsqu'on arrive sur la derniere image de notre occurence de clip?
car j'ai mis une variable lorsque je double clique sur mon clip, dans la derniere frame de mon clip, mais elle est "undefined" (je teste meme pas une fonction du coup)
Apres j'essaye dans l'occurence de mon clip mais je me retrouve avec "L’instruction doit apparaître dans le gestionnaire on/onClipEvent". On ne peut savoir lorsque le clip a fait un tour par exemple? (car j'ai fait du bidouillage là : j'ai créé une var que j'initialise à 0 à la fin de mon clip, pas de l'occurence, et avec une boucle je le recharge un certain nombre de fois, mais j'aurais voulu appeller une fonction apres, une fois que tout est chargé)
 
Cela dit je pense surement mal :S peut etre devrais je directement, en dur, definir le temps max du clip en rajoutant à la main des frames.
 
j'avais regardé attachMovie mais je vais essayer de revoir cette fonction, ca sera peut etre plus simple de tout definir dans le code plutot que de les créer et les placer sur mon appli à la volé.
merci encore :)

Message cité 1 fois
Message édité par le_chanceux le 13-11-2007 à 10:35:41
n°1642010
alpseb
Posté le 13-11-2007 à 10:31:39  profilanswer
 

le_chanceux a écrit :

oui effectivement le fait que le clip tournai en boucle etait du à un goToAndPlay que je n'avais pas placé moi meme (mais un pote graphiste qui l'a fait).
Pour l'instant j'ai fait un clip avec des frames. ca me fait une seule fonction à appeller et seulement 3occurence de mon clip (qui contient 12images/frames au choix) donc c'est plus simple de tout reunir ^^
 
j'avais regardé attachMovie mais je vais essayer de revoir cette fonction, ca sera peut etre plus simple de tout definir dans le code plutot que de les créer et les placer sur mon appli à la volé.
merci encore :)


 
ça dépend des cas en fait... si c'est des éléments ponctuels comme des popup ou des objets d'un jeu par exemple, tu peux faire du attachmovie depuis la bibliothèque sans problèmes
 
si c'est des éléments d'interface qui seront toujours la, pas besoin de les appeler dynamiquement, tu peux les poser sur la scène c'est pas un problème

mood
Publicité
Posté le 13-11-2007 à 10:31:39  profilanswer
 

n°1642017
le_chanceu​x
Posté le 13-11-2007 à 10:46:33  profilanswer
 

ok, et pour connaitre la fin d'un clip? (j'ai edité mon message au dessus pendant que tu repondais :P

n°1642024
alpseb
Posté le 13-11-2007 à 10:54:18  profilanswer
 

pour la fin d'un clip t'as plein de solutions, les plus simples c'est :

 
  • A la dernière image de ton clip tu fais une fonction fin() qui va faire les actions pour passer a la suite (ton truc marche pas parce que t'as mis du code sur l'objet au lieu de le mettre sur la timeline !)


  • Ou tu fais une boucle qui regarde si t'as atteint la fin de ton clip

du genre :

 

monClip.onEnterFrame = function(){
 if(this._currentframe >= this._totalframes){
  delete this.onEnterFrame
  trace("on est a la fin" )
  }

 

}


Message édité par alpseb le 13-11-2007 à 10:54:41
n°1642036
le_chanceu​x
Posté le 13-11-2007 à 11:09:54  profilanswer
 

waaaaaaaaaaaaaaaa!!!
Tu as prononcé un new mot ^^ "timeline" je viens de chercher sur le net et sur l'aide flash et apparemment ca serait un objet.
 
sinon le "monClip.onEnterFrame me donne les frame de mon appli flash en general pas juste de mon occurence de clip si?
 
je regarde du coté du timeline là et j'ai du mal à saisir l'utilisation :S
il faudrait que je fasse un :
 
var curFrame = monClip.getDocumentDOM().getTimeline().currentFrame;
pour chaque frame de mon application (et non de mon clip) afin de voir où en est monClip? et pour avoir le nombremax de frame de monClip? je dois le rentrer en dur ou il y a une propriete?

n°1642050
alpseb
Posté le 13-11-2007 à 11:27:40  profilanswer
 

le_chanceux a écrit :

waaaaaaaaaaaaaaaa!!!
Tu as prononcé un new mot ^^ "timeline" je viens de chercher sur le net et sur l'aide flash et apparemment ca serait un objet.
 
En français c'est le scénario (la ou tu met tes frames et tes calques ;)... et le code ! )
 
 
sinon le "monClip.onEnterFrame me donne les frame de mon appli flash en general pas juste de mon occurence de clip si?
 
non, parcque tu fais [b]monClip.onEnterFrame ... ce qui fais qu'il va s'intéresser a monclip[/b]
 
je regarde du coté du timeline là et j'ai du mal à saisir l'utilisation :S
il faudrait que je fasse un :
 
var curFrame = monClip.getDocumentDOM().getTimeline().currentFrame;
pour chaque frame de mon application (et non de mon clip) afin de voir où en est monClip? et pour avoir le nombremax de frame de monClip? je dois le rentrer en dur ou il y a une propriete?
 
non, tout ça c'est du charabia qui était propriétaire a un projet ;)
tu peux pas mettre ton fihchier flash a dispo qu'on puisse jeter un oeuil et te montrer en pratique ?
 


n°1642054
le_chanceu​x
Posté le 13-11-2007 à 11:31:47  profilanswer
 

ok je fini de tout remettre au propre avec des classes et je t'envois ca :)
merci de m'aider ^^ ;)

n°1642074
le_chanceu​x
Posté le 13-11-2007 à 12:06:11  profilanswer
 

tu l'as recu? (je n'arrive pas à acceder à mon adresse free de là où je suis je t'ai envoyé ce que je pouvais par mp tu me diras)
 
thx ^^


Message édité par le_chanceux le 13-11-2007 à 12:07:00
n°1642251
le_chanceu​x
Posté le 13-11-2007 à 15:09:09  profilanswer
 

tres bien je fais un résumé pour que ca serve à d'autres :
j'ai tout transformé en class :
elle contient :
mon clip (declaration de type "Objet" dans le constructeur) auquel je veux que, lorsqu'il est fini, apparaisse mon second clip dont je ne veux qu'une image (lui aussi passé avec "Object" dans le constructeur et un 2ieme paramettre nous permettant de determiner quelle image nous donner de ce dernier clip)
 
j'y ai créé une fonction :

Code :
  1. private function lancerOEF (classe :Object/*on passe notre objet lors de l'appele à cette fonction où l'on souhaite qu'elle soit prise en compte*/) {
  2.  this.clip1.onEnterFrame = function(){ /*pour chaque frame*/
  3.  if(this._currentframe >= this._totalframes){ /*si on a fini de lire le clip*/
  4.   this.stop(); /*on l'arrete*/
  5.   this._visible = false; /*on le rend invisible*/
  6.   classe.clip2._visible = true; /*je fais apparaitre mon 2ieme clip*/
  7.   classe.clip2.gotoAndStop(troisieme_paramettre); /*on affiche l'image voulue*/
  8.   delete this.onEnterFrame; /*on supprime la fonction pour qu'elle ne soit pas inutilement appellée à chaqe frame*/
  9.   }
  10.  }
  11. }


 
et donc on l'appelle où on veut dans la classe (constructeur, autre fonction) par
 

Code :
  1. this.lancerOEF(this);


 
merci 1000fois à alpseb pour m'avoir aidé dans l'ecriture de ce code!
Et à zedlefou pour avoir tenté de m'aidé et m'avoir corrigé certaines erreurs!
n'hesitez pas à poster si votre probleme est similaire je tacherai d'eclairsir les points obscurs

n°1642349
Zedlefou
In cabbage we trust !
Posté le 13-11-2007 à 17:36:48  profilanswer
 

Heu, j'ai pas compris, elle est ou ta classe la dedans ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1642360
le_chanceu​x
Posté le 13-11-2007 à 17:53:30  profilanswer
 

Code :
  1. class Roulette {
  2. private var clip_roulette :Object;
  3. public var clip_perso :Object;
  4. private var perso :String;
  5. //constructeur
  6. public function Roulette (clip_roulette_ : Object, clip_perso_ : Object, perso_ : String)
  7. {
  8.  this.clip_roulette = clip_roulette_;
  9.  this.clip_perso = clip_perso_;
  10.  this.perso = perso_;
  11.  this.clip_roulette.stop();
  12.  this.clip_perso.stop();
  13.  this.clip_perso._visible = false;
  14. }
  15. //fonction pour afficher le perso en fonction de la lettre du mec
  16. private function afficher_perso () {
  17.  switch (this.perso) {
  18.   case "Z":
  19.    this.clip_perso.gotoAndStop(1); break ;
  20.   case "T":
  21.    this.clip_perso.gotoAndStop(2); break;
  22.   case "H":
  23.    this.clip_perso.gotoAndStop(3); break;
  24.   case "K":
  25.    this.clip_perso.gotoAndStop(4); break;
  26.   case "A":
  27.    this.clip_perso.gotoAndStop(5); break;
  28.   case "M":
  29.    this.clip_perso.gotoAndStop(6); break;
  30.   default:
  31.    trace ("erreur " ); break; // a changer plus tard
  32.  }
  33. }
  34. private function lancerOEF (classe :Object) {
  35.  this.clip_roulette.onEnterFrame = function(){
  36.  if(this._currentframe >= this._totalframes){
  37.   this.stop();
  38.   this._visible = false;
  39.   classe.clip_perso._visible = true;
  40.   classe.afficher_perso();
  41.   delete this.onEnterFrame;
  42.   }
  43.  }
  44. }
  45. //fonction principale
  46. public function jouer ()
  47. {
  48.  this.clip_perso._visible = false;
  49.  this.clip_roulette._visible = true;
  50.  this.lancerOEF(this);
  51.  this.clip_roulette.play();
  52. }
  53. }


 
voila à quoi elle resemble si tu veux :)
lors d'une instanciation de cette classe je met les occurence de mes clips dans le constructeur :)


Message édité par le_chanceux le 13-11-2007 à 17:54:41

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [résolu] Action script pour un graphique + class onEnterFrame

 

Sujets relatifs
[RESOLU]CSS probleme de couleur de fond sur des divs empilés.[RESOLU] javascript enfantin mais not defined
[Non résolu] fermer un userform mais RESTER dans la feuille en cours[Resolu ]Incrementation [ debutanT ]
[resolu] - Recuperer nom fichier selectionné dans une listview ![Résolu] Supprimer une ligne d'un array sans trier ?
mail, PJ et free: si qqun a reussi... [RESOLU]date de modification de page en javascript [résolu en php]
Script pour téléchargerProbleme avec ob_start [RESOLU]
Plus de sujets relatifs à : [résolu] Action script pour un graphique + class onEnterFrame


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR