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 04/05/2008, 15h54   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 33
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 33
Points : 4
Points : 4
Par défaut Récupérer un clip d'une frame a l'autre

Salut a tous !

Voila j'ai un pti problème en AS3

Sur ma première frame j'ai 4 images, quand je clic sur l'une d'entre elle je passe sur ma 2eme frame et je charge :
- l'image sur laquelle j'ai cliqué
- et l'une des 3 autres images aléatoirement

le problème c'est comment faire passer les images de l'une a l'autre ? J'essaye en récupérant le nom des objets sur la première page mais en chargeant sur la 2eme j'ai cette erreur :

Citation:
TypeError: Error #1034: Echec de la contrainte de type : conversion de "gomme_mc" en flash.display.DisplayObject impossible.
Donc voila je vois pas trop comment faire voila mon code :

1ere Frame :

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
38
39
40
41
42
43
stop();
 
var objetSelectionné:String;
 
var objet_1 = "trousse";
var objet_2 = "gomme";
var objet_3 = "ciseau";
var objet_4 = "crayon";
 
var nombreAleatoire:Number;
var valeur;
var objet_opposé;
var tableau_valeur:Array;
 
function selectionObjet(ev:MouseEvent):void{
	objetSelectionné=ev.target.name;
	if (objetSelectionné == objet_1){
		tableau_valeur =["trousse","gomme","ciseau","crayon"]; 
		nombreAleatoire = Math.ceil(Math.random()*3);
		valeur = tableau_valeur[nombreAleatoire];
		gotoAndStop(2);
	}
	if (objetSelectionné == objet_2){
		tableau_valeur =["gomme","trousse","ciseau","crayon"]; 
		nombreAleatoire = Math.ceil(Math.random()*3);
		valeur = tableau_valeur[nombreAleatoire];
	}
	if (objetSelectionné == objet_3){
		tableau_valeur =["ciseau","gomme","trousse","crayon"]; 
		nombreAleatoire = Math.ceil(Math.random()*3);
		valeur = tableau_valeur[nombreAleatoire];
	}
	if (objetSelectionné == objet_4){
		tableau_valeur =["crayon","ciseau","gomme","trousse"]; 
		nombreAleatoire = Math.ceil(Math.random()*3);
		valeur = tableau_valeur[nombreAleatoire];
	}
}
 
trousse.addEventListener(MouseEvent.MOUSE_DOWN, selectionObjet)
gomme.addEventListener(MouseEvent.MOUSE_DOWN, selectionObjet)
ciseau.addEventListener(MouseEvent.MOUSE_DOWN, selectionObjet)
crayon.addEventListener(MouseEvent.MOUSE_DOWN, selectionObjet)

2eme Frame :

Code :
1
2
3
4
5
6
7
8
9
10
11
trace(valeur);
trace(objetSelectionné);
 
var movie;
 
movie = new ciseau_mc;
 
var objet_Adversaire = valeur+"_mc"; 
var objet_Choisi = objetSelectionné+"_mc";
 
movie.addChild(objet_Adversaire);

Merci a vous !
Lord Silk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 22h49   #2
Membre du Club
 
Étudiant
Inscription : janvier 2007
Messages : 76
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 76
Points : 53
Points : 53
Attention, tu récupère un nom de variable, et pas un objet de type DisplayObject... tu pourrais faire un tableau de ce type plutôt qu'un tableau de string.
si tu place tes images directement sur ta scéne dans la frame 1, tu leur donne un nom d'occurence du genre "obj_ciseau", "obj_trousse" etc,
ensuite, tu fait un tableau comme ça:

[code]public var tableau:Array = [obj_trousse, obj_ciseau, etc];[/quote]
boadog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2008, 17h37   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 33
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 33
Points : 4
Points : 4
Merci en effet je me suis rendu compte de mon erreur et j'ai réussi a corriger le truc
Lord Silk 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 00h41.


 
 
 
 
Partenaires

Hébergement Web