Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2008, 18h41   #1
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 110
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 110
Points : 32
Points : 32
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 :
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
shaftJackson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 14h30   #2
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 110
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 110
Points : 32
Points : 32
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 :
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 :
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 ?

shaftJackson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 15h55   #3
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 110
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 110
Points : 32
Points : 32
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'
shaftJackson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h25.


 
 
 
 
Partenaires

Hébergement Web