Tutoriels - Flash - Programmation fichier source



Délimiter un cadre (écrit par Jérémie )




intro

Comment trouver en programmation les limite droite, gauche haut et bas d'un clip (cadre) ?
Dans l'exemple ci-dessus, pour définir la zone où la balle peut se déplacer, il est nécessaire de connaître les limites du cadre. On peut toujours les écrire textuellement dans l'animation ( haut = 15; ...). Mais si vous modifiez ou déplacez cadre par la suite, vous devrez penser à changer les valeurs de ces limites, et les calculer. Pour un grand projet, c'est impensable.

On peut très simplement (un clip et 4 lignes de code) les récupérer en programmation, en utilisant les propriétés des movieClips.



prérequis

à peine un peu de logique et des bases en programmation (rien de méchant)
Pour tous ceux qui connaissent bien la programmation ActionScriptn passez directement au paragraphe 3.



I les propriétés des movieClips

Lorsqu'un movieClip est placé dans l'animation, on peut afficher (et modifier) certaines de ses propriétés. Voici quelques unes des plus utilisées :
_x coordonnée x du clip
_y coordonnée y du clip
_width largeur (de gauche à droite) du clip
_height hauteur du clip
_visible (vrai ou faux) indique si le clip est visible ou non
_alpha transparence du clip
on peut y accéder en faisant (par exemple):

nomDuClip._x = 40;
posY = nomduClip._y;


_x et _y représentent les coordonnées du centre du clip.
pour le cadre que nous allons créer ce centre et à égale distance des quatre coins. (tout au milieu, quoi)


II création du symbole

Pour cette animation, besoin de rien d'autre que d'un rectangle, dessinez un rectangle sur la scène principale.
Sélectionnez-le et convertissez le en symbole (F8). Appelez le "cadre" et choisissez Clip.

Vous devez maintenant lui donner un nom d'instance.
A quoi sert le nom d'instance ? Lorsque vous créez un symbole, il est placé dans la bibliothèque de l'animation.
Vous pouvez l'utiliser plusieurs fois dans l'animation.Le nom d'instance sert à différencier les clips sur la scène qui proviennent du même symbole.

Avec FlashMX, affichez le panneau Propriétés, avec Flash 5, faites ctrl-i (je crois bien)
Donnez lui le nom d'instance cadre.



III récupération des limites

assez d'explications, un peu de logique.
le clip "cadre" est placé sur la scène. que connaît-on sur lui ?
(et surtout) que peut-on utiliser ?

on souhaite obtenir les coordonnées de ses bords.



ben en regardant le dessin et en réfléchissant un peu, on peut imaginer que le bord gauche, c'est _x (coordonnée horizontale) - _width/2 (puisque _x est au milieu)
les auters on les trouve de la même manière ...

double cliquez sur le clip "cadre", créez un nouveau calque et sur la première image, éditez les actions (clic bouton droit sur la première image, puis actions)
ce code actionscript sera executé lorsque l'animation sera lancée. on va préparer quatre variables : haut bas gauche et droite qu'on pourra utiliser par la suite.

dans flash, l'origine (0,0) est en haut à gauche.

écrivez :

haut = this._y - this._height/2;
bas = this._y + this._height/2;
gauche = this._x - this._width/2;
droite = this._x + this._width/2;


this correspond au clip qui execute le code, donc le cadre (puisque si tout se passe bien, vous écrivez ce code à l'intérieur du cadre)

c'est déjà fini.
pour accéder aux variables créez maintenant, vous faites :
(puisqu'elle sont contenues dans le clip cadre, _root correspond à la scène principale)

_root.cadre.haut
_root.cadre.bas
_root.cadre.gauche
_root.cadre.droite


écrivez sur la scène principale, dans les actions de la première image :

trace("HAUT : + "_root.cadre.haut);
trace("BAS : + "_root.cadre.bas);
trace("GAUCHE : + "_root.cadre.gauche);
trace("DROITE : " + _root.cadre.droite );


Normalement les limites s'affichent.

Ça fait bien beaucoup d'explications pour un si petit bout de code, mais ça permettra à ceux qui ne sont pas vraiment familiers avec la programmation de pas être trop perdu.


Tous droits réservés 2003 Jérémie Cook