Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Class(s) et Action-Script
Envoyé: 20 janvier 2005, 8h13 par dada
(on peut se tutoyer ;)
Sans voir le code, je risque de pas tout saisir. Mais si j'ai bien compris l'ensemble :
1) la classe Fenetre doit englober la classe Fond.
2) les deux classes créent des MovieClips
3) la classe fenetre doit pouvoir accéder à un clip (pour simplifier) de la classe Fond
4) la classe fenetre doit pouvoir indiquer à la classe fond un clip "cible" pour effectuer des actions
-->1) je pense qu'il faut créer l'occurence de Fond dans la classe Fenetre :
-----------------------------
class Fenetre {
var leFond:Fond;
function Fenetre ()
{
leFond= new Fond();
}
}
------------------------------
Ainsi, on a accès à toutes les méthodes de la classe Fond depuis Fenetre.
-->2) Pour créer des MovieClips dans une classe, on passe en paramètre un clip "cible" dans lequel créer le 2° MC. Si ce clip doit subir des modifications fréquentes, on place sa référence dans une variable de la classe.
-------------------------------
class Fenetre {
var leClip:MovieClip;
function Fenetre (pm_unClipConteneur:MovieClip)
{
leClip= pm_unClipConteneur.createEmptyMovieClip("nom", 1);
}
function cacherLeClip ():Void
{
leClip._visible= false;
}
}
-------------------------------------
Comme çà, le clip est accessible de partout dans la classe et on peut le passer en paramètre à une autre classe.
On peut aussi rajouter une variable pour le clip conteneur si besoin...
-->3) En reprenant l'exemple précédent, mais dans le cadre de la classe Fond, on rajoute une fonction getLeClip() que la classe Fenetre pourra utiliser pour accéder au clip de la classe Fond.
-----------------------------------
class Fond {
var leClip:MovieClip;
function Fond (pm_unClipConteneur:MovieClip)
{
leClip= pm_unClipConteneur.createEmptyMovieClip("nom", 1);
}
function getLeClip ():MovieClip
{
return leClip;
}
}
--------------------
class Fenetre {
var leFond:Fond;
var leClipDuFond:MovieClip;
function Fenetre ()
{
leFond= new Fond();
}
function recupereLeClipDuFond ():Void
{
leClipDuFond= leFond.getLeClip ();
}
--------------------------------------
leClipDuFond est maintenant mémorisé dans la classe. Si c'est pas nécessaire de le mémoriser, pour effectuer une simple action, on peut faire :
leFond.getLeClip ()._y= 500;
par exemple.
-->4) De la même manière que précédement, on va passer le clip en paramètre à la classe Fond.
---------------------------------------
class Fenetre {
var leFond:Fond;
var leClip:MovieClip;
function Fenetre (pm_unClipConteneur:MovieClip)
{
leFond= new Fond();
leClip= pm_unClipConteneur.createEmptyMovieClip("nom", 1);
}
function donnerClipAFond ():Void
{
leFond.agirSurUnClip (leClip);
}
}
----------------
class Fond {
(...)
function agirSurUnClip (pm_leClip:MovieClip):Void
{
pm_leClip._y= 500;
}
}
--------------------------------------
Il y a de nombreuses manières de faire tout çà, comme je ne sais pas vraiment comment tu t'y es pris j'ai mis ce qui me parait le plus logique.
Sinon, fait un copier coller du code utilisé (les parties concernées).
(j'espère que j'ai pas mis trop de co****ies :)
dada
Réponses
|