IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

[Flash7]Appel de fonctions dans scripts as externes


Sujet :

ActionScript 3

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut [Flash7]Appel de fonctions dans scripts as externes
    Salut,

    Je suis entrain de faire mon premier code "élaboré" en AS que voici :
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
       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.
       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.
      13. mcl.addListener(ecouteurChargement);
      14. mc2.addListener(ecouteurChargement);
      15. mcl.loadClip("anim.swf", this["conteneur"]); //chargement de monswf.swf dans monClip
      16.
      17. this["conteneur"]._x=220;
      18. this["conteneur"]._y=200;
      19.
      20. mc2.loadClip("anim1.swf", this["conteneur1"]);
      21. this["conteneur1"]._x=80;
      22. 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)

    Merci

  2. #2
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    Voici la situation dans laquelle je me trouve :
    J'ai un fichier mainBal.swf, dans lequel j'écris :
    Dans mon fichier mainBal.as j'écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include "metier.as"
    import Player;
     
    this.createEmptyMovieClip("Joueur1", this.getNextHighestDepth()); //clip conteneur
    this.createEmptyMovieClip("Joueur2", this.getNextHighestDepth()); //clip conteneur
    var mcl:MovieClipLoader = new MovieClipLoader(); //gestionnaire du chargement
     
    var ecouteurChargement:Object = new Object(); 
    ecouteurChargement.onLoadStart = function(target:MovieClip):Void { trace("start"); };
    ecouteurChargement.onLoadProgress = function(target:MovieClip, loaded:Number, total:Number):Void { trace("progress"); };
    ecouteurChargement.onLoadComplete = function(target:MovieClip):Void { trace("complete"); };
    ecouteurChargement.onLoadInit = function(target:MovieClip):Void { trace("init"); };
    ecouteurChargement.onLoadError = function(target:MovieClip, code:String):Void { trace("erreur"); }
     
    mcl.addListener(ecouteurChargement);
     
    Joueur1._x=0;
    Joueur1._y=0;
    Joueur2._x=400;
    Joueur2._y=0;
    var joueur1:Player=new Player();
     
    var nom:String=joueur1.NamePerso;
    mcl.loadClip(nom + ".swf", this.Joueur1); 
    mcl.loadClip(nom + ".swf", this.Joueur2);
     
    for (var i:Number=0;i<10;i++){
    	if (i%2 != 0){
    		this.Joueur1.gotoAndPlay(10);
    		trace ("impair");
    	}
    	else{
    		this.Joueur2.gotoAndPlay(2);
    		trace ("pair");
    	}
    }
    J'ai aussi un fichier Player.as où il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Player 
    {
    	private var mouv:Number;
    	private var namePerso:String;
     
            public function Player(){
    		mouv=10;
    		namePerso="balle";
    	}
    	function get NamePerso():String {
    		return this.namePerso;
    	}
     }
    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-il d'où vient le problème ?


  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    C'est bon, j'ai fini par trouvé.
    Au cas où y en a qui tombent sur le même problème.
    Fallait mettre tout le code dans le LoadInit et retirer le 'this'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Free Pascal] Appeler une fonction dans un script Lua
    Par Roland Chastain dans le forum Free Pascal
    Réponses: 4
    Dernier message: 08/02/2015, 11h55
  2. Appel de fonction dans script externe
    Par exe2bin dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 10/12/2014, 19h20
  3. appel à une fonction dans un fichier externe
    Par corentin59 dans le forum Langage
    Réponses: 1
    Dernier message: 11/01/2008, 12h22
  4. [JS] Appeler une fonction dans un script externe
    Par agent007se dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/03/2007, 12h30
  5. [langage] Appel de fonction dans un lien
    Par drakan dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2005, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo