Aide - Recherche - Membres - Calendrier
Version complète : Problème de ciblage
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Programmation Actionscript > Actionscript 2
tépè
Bonjour

Un clip "accueil" charge un autre clip "bois" dans un container après un clic sur un bouton.

Le clip "bois" contient de AS sur différents boutons. Ces codes fonctionne dans l'anim seul mais plus quand elle est chargé.

Je pense que c'est un problème de ciblage mais malgré différents essais je n'arrive pas a trouver une solution.

Alors je me tourne vers vous pour me venir en aide.

Ci joint les fichiers
paodao
salut

quand tu charge bois.swf dans accueil.swf le _root de bois deviens le _root de accueil.swf
donc tout ton ciblage devient faux
on utilise jamais _root (sauf dans certain cas bien particulier)
de plus on ne met plus de code sur des clips mes sur des frames
donc le
on(release)
deviens
tonClip.onRelease = function()
{
}


de plus tu utilise un enterFrame
donc si je clique nul par le enterFrame continue de tourner alors que cela sert a rien

declenche le enterFrame que quand c'est utilse icon_wink.gif

de plus tu peux utiliser plus simplement les tweens icon_wink.gif

ps: tu as quelle version de flash ?
monz
Citation (tépè @ Dec 2 2008, 09:20 AM) *
Bonjour

Un clip "accueil" charge un autre clip "bois" dans un container après un clic sur un bouton.

Le clip "bois" contient de AS sur différents boutons. Ces codes fonctionne dans l'anim seul mais plus quand elle est chargé.

Je pense que c'est un problème de ciblage mais malgré différents essais je n'arrive pas a trouver une solution.

Alors je me tourne vers vous pour me venir en aide.

Ci joint les fichiers

Salut,

Tu es victime du syndrome de _root. Comme tu en as mis dans ton clip loadé, quand tu le charges, ton _root devient le _root du premier clip et forcément, plus personne ne s'y retrouve.

Tu dois dans ton clip bois, cibler avec "this" et "_parent".

Eventuellement, mais ce n'est pas conseillé, mettre :

Action Script


this._lockroot = true;


dans ton clip bois afin que flash considère tes _root comme appartenant bien à ton clip bois et non pas au clip qui loade.

EDIT : grillé par paodao qui a poussé l'étude de ton .fla plus loin que moi... Trop fort ! icon_smile.gif
tépè
Citation (monz @ Dec 2 2008, 09:41 AM) *
Tu dois dans ton clip bois, cibler avec "this" et "_parent".

Merci pour vos réponses.

Dans ce code, sur un bouton

Action Script

on (press) {
posicible = -646;
cle = 1;
decal = Math.abs(posicible-_parent.image._x);
if (_parent.image._x>posicible) {
sens = -1;
} else {
sens = 1;
}
}

_parent remplace _root, mais dois je mettre this avec 'posicible' cle, et 'sens'.

J'avoue ne pas savoir quoi mettre où
paodao
utilse la fonction trace pour savoir ou tu es
donc dans ta fonction tu met

trace(_parent)
et tu vois ce que flash te dis
comme ca tu saura s'il faut mettre this._parent ou _parent ou _parent._parent ou.....

a+
tépè
Citation (paodao @ Dec 2 2008, 10:55 AM) *
utilse la fonction trace pour savoir ou tu es
donc dans ta fonction tu met

trace(_parent)
et tu vois ce que flash te dis
comme ca tu saura s'il faut mettre this._parent ou _parent ou _parent._parent ou.....

a+

Je ne sais pas faire cela, tu peut m'expliquer STP

Merci
tépè
J'ai trouvé ou j'avais fait une erreur.

Merci a tous
paodao
Citation
on (press) {
trace(this)
}


si tu met ce code sur ton bouton
si tu lance bois.swf
quand tu va cliqué sur ton bouton flash va te tracer "_level0"
ce qui veux dire que si tu remplace tes _root par des this cela fonctionnera
si tu lance acceuil.swf
flash te trace _level0.contproj

la fonction trace et tres pratique pour savoir ce que fait flash, un trace(this) te permet de savoir dans quel clip tu te trouve et ainsi savoir comment cibler les autres clips
this._parent te permet de remonter d'un niveau
this._parent._parent de remonter de 2 niveau
...

a+
paodao
salut
je t'es refait le fla bois.fla avec une meilleur facon de faire et une expliquation
pour accueil.fla
donne un nom d'occurence a ton bouton par exemple "bouton" et met ce code

Action Script


bouton.onRelease = function()
{
mcl = new MovieClipLoader()
mcl.loadClip("bois.swf", contproj)

}


a+
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.