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

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [FLASH7]Appel de fonctions de scripts externes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[FLASH7]Appel de fonctions de scripts externes

n°1736790
shaftbis
Posté le 25-05-2008 à 16:56:47  profilanswer
 

Bonjour,
 
Je suis entrain de faire mon premier code "élaboré" en AS que voici :

Code :
  1. var monClip:MovieClip = this.createEmptyMovieClip("conteneur", this.getNextHighestDepth()); //clip conteneur
  2. var monClip:MovieClip = this.createEmptyMovieClip("conteneur1", this.getNextHighestDepth());
  3. var mcl:MovieClipLoader = new MovieClipLoader(); //gestionnaire du chargement
  4. var mc2:MovieClipLoader = new MovieClipLoader();
  5. var ecouteurChargement:Object = new Object();
  6. ecouteurChargement.onLoadStart = function(target:MovieClip):Void { trace("start" ); };
  7. ecouteurChargement.onLoadProgress = function(target:MovieClip, loaded:Number, total:Number):Void { trace("progress" ); };
  8. ecouteurChargement.onLoadComplete = function(target:MovieClip):Void { trace("complete" ); };
  9. ecouteurChargement.onLoadInit = function(target:MovieClip):Void { trace("init" ); };
  10. ecouteurChargement.onLoadError = function(target:MovieClip, code:String):Void { trace("erreur" ); }
  11. mcl.addListener(ecouteurChargement);
  12. mc2.addListener(ecouteurChargement);
  13. mcl.loadClip("anim.swf", this["conteneur"]); //chargement de monswf.swf dans monClip
  14. this["conteneur"]._x=220;
  15. this["conteneur"]._y=200;
  16. mc2.loadClip("anim1.swf", this["conteneur1"]);
  17. this["conteneur1"]._x=80;
  18. this["conteneur1"]._y=160;


 
Ce code est dans un fichier nommé 'main.swf'
 
Deux questions :
 
1) Jsouhaiterais scinder l'appli sur plusieurs script flash, pour appeler les fonctions souhaitées (comme avec les 'include' en C++), mais je ne sais pas quel est la syntaxe.
Concrètement, j'ai du script dans un fichier 'Métiers.as'. Ce script contient une fonction 'maFonction()'
Comment faire appel à 'maFonction()' dans 'main.swf' ??
 
2) Le code ci-dessus charge deux swf externes.  
Quel est la syntaxe pour gérer les animations chargées depuis le fichier 'main.swf' ?
 
Ca serait tellement plus simple si jpouvais faire anim1.swf.gotoandplay(4)  :D  
 
Merci :)

mood
Publicité
Posté le 25-05-2008 à 16:56:47  profilanswer
 

n°1737508
Zedlefou
In cabbage we trust !
Posté le 27-05-2008 à 04:40:55  profilanswer
 

1) Ton code tu le mets dans un fichier externe : main.as.
Ensuite dans ton Metier.as tu fais #include "main.as"
 
2) this.conteneur.gotoAndStop(4);


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1737871
shaftbis
Posté le 27-05-2008 à 17:00:02  profilanswer
 

Zedlefou a écrit :

1) Ton code tu le mets dans un fichier externe : main.as.
Ensuite dans ton Metier.as tu fais #include "main.as"
 
2) this.conteneur.gotoAndStop(4);


 
- J'inclus 'main.as' dans 'metier.as' alors que je veux appeler des fonctions de 'metier.as' depuis 'main.as' ?
Je croyais que c'était l'inverse.
Et la syntaxe pour appeler une fonction d'un script externe en AS, c'est quoi ?
 
- Donc je dois mettre mon code dans fichier main.as et non main.swf ???
Dans ce cas, comment lancer le programme depuis le navigateur ?  J'ai l'habitude de lancer des swf depuis les navigateur, ais peut-on lancer directement un script AS ??
 
 

n°1738118
Zedlefou
In cabbage we trust !
Posté le 28-05-2008 à 04:20:36  profilanswer
 

Oui c'est l'inverse, j'avais mal lu.
 
Dans main.as tu mets #include "metiers.as"
 
Apres depuis main.as, tu n'as besoin de rien de plus pour appeler la fonction. Tu l'appels comme si tu l'avais déclaré dans ton fichier.
 
Pour tester, dans main.fla, tu mets #include "main.as" et tu exportes.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1744206
shaftbis
Posté le 10-06-2008 à 14:24:08  profilanswer
 

Voici la situation dans laquelle je me trouve :
J'ai un fichier mainBal.swf, dans lequel j'écris :

Code :
  1. #include "mainBal.as"


 
Dans mon fichier mainBal.as j'écris:

Code :
  1. #include "metier.as"
  2. import Player;
  3. this.createEmptyMovieClip("Joueur1", this.getNextHighestDepth()); //clip conteneur
  4. this.createEmptyMovieClip("Joueur2", this.getNextHighestDepth()); //clip conteneur
  5. var mcl:MovieClipLoader = new MovieClipLoader(); //gestionnaire du chargement
  6. var ecouteurChargement:Object = new Object();
  7. ecouteurChargement.onLoadStart = function(target:MovieClip):Void { trace("start" ); };
  8. ecouteurChargement.onLoadProgress = function(target:MovieClip, loaded:Number, total:Number):Void { trace("progress" ); };
  9. ecouteurChargement.onLoadComplete = function(target:MovieClip):Void { trace("complete" ); };
  10. ecouteurChargement.onLoadInit = function(target:MovieClip):Void { trace("init" ); };
  11. ecouteurChargement.onLoadError = function(target:MovieClip, code:String):Void { trace("erreur" ); }
  12. mcl.addListener(ecouteurChargement);
  13. Joueur1._x=0;
  14. Joueur1._y=0;
  15. Joueur2._x=400;
  16. Joueur2._y=0;
  17. var joueur1:Player=new Player();
  18. var nom:String=joueur1.NamePerso;
  19. mcl.loadClip(nom + ".swf", this.Joueur1);
  20. mcl.loadClip(nom + ".swf", this.Joueur2);
  21. for (var i:Number=0;i<10;i++){
  22. if (i%2 != 0){
  23.  this.Joueur1.gotoAndPlay(10);
  24.  trace ("impair" );
  25. }
  26. else{
  27.  this.Joueur2.gotoAndPlay(2);
  28.  trace ("pair" );
  29. }
  30. }


 
J'ai aussi un fichier Player.as où il y a :

Code :
  1. class Player
  2. {
  3. private var mouv:Number;
  4. private var namePerso:String;
  5.         public function Player(){
  6.  mouv=10;
  7.  namePerso="balle";
  8. }
  9. function get NamePerso():String {
  10.  return this.namePerso;
  11. }
  12. }


 
Enfin j'ai un fichier balle.swf
Sur la TimeLine, j'ai les informations suivantes :
image 1 => stop()
image 9 => gotoAndStop(2)
image 20 => gotoAndStop(10)
Entre 1 et 9, la balle effectue un mouvement verticale
Entre 10 et 20, un mouvement horizontale.
 
Dans la boucle For du fichier mainBal.as, je charge donc une balle dans deux conteneurs différents. Du coup, j'ai deux balles que je souhaite contrôler depuis mainBal.as.
Le problème est qu'après le chargement, aucune des 'balles' chargées ne bougent.
 
Quelqu'un saurait d'où vient le problème ?

n°1744275
shaftbis
Posté le 10-06-2008 à 15:55:20  profilanswer
 

C'est bon, j'ai fini par trouvé.
Au cas où y en a qui tombe sur le même problème.
Fallait mettre tout le code dans le LoadInit et retirer le 'this'


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

  [FLASH7]Appel de fonctions de scripts externes

 

Sujets relatifs
Urgent ! Appel d'une page html en perlest il possbile d'importer facilement des scripts php sous exchange?
fonctions virtuellesAppel périodique d'une fonction??
Appel d'une fonctionLancer des fichiers java externes au programme
appel du destructeur et opérateursAppel aux pros de GTK et manipulation des images. J'avance pas !
problème débutant: appel méthodeAppel dll VB depuis VC++
Plus de sujets relatifs à : [FLASH7]Appel de fonctions de scripts externes


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