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)
Ç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.