Pour obtenir une forme changeante comme celle-ci :
Vous pouvez écrire le script suivant :
onFrame (1) {
_root.Legende.text="Dessins avec Morphing";
}
onLoad () {
//this._y=125;
// Optionnel, pour positionner le Sprite
//this._x=100;
// Optionnel, pour positionner le Sprite
this.createEmptyMovieClip("carre", 2 );
carre.a=0.5;
// Donne la valeur de l'incrément pour le changement de forme,
// agit donc sur la vitesse
carre.mini=18;
//70/100 de cote.maxi pour un cercle
carre.maxi=25;
//100/100 de cote.carre pour un carre
carre.vir=carre.mini;
carre.change=carre.vir;
carre.cotecarre=25;
// Dimension du côté du carré
carre.carreq=carre.cotecarre*0.414;
carre.carres=2*carre.carreq;
}
onEnterFrame() {
//carre._rotation=carre._rotation + 2;
//Si on veut que le carré tourne sur lui-même
carre.clear();
//A chaque frame on efface le carré et on le reconstruit avec les caractéristiques suivantes
tellTarget (this.carre) {
lineStyle( 0, 0x0000CC, 100 );
// Style de la ligne
beginFill( 0xffff00,100-change );
// Style du remplissage
change=change+a;
if (change>maxi) {
a=-a;
}
if (change<mini) {
a=-a;
}
x=0;
y=0;
// Début du traçage de l'objet
moveTo( x, y+cotecarre );
curveTo( x+carreq, y+cotecarre, x+change, y+change );
curveTo( x+cotecarre, y+carreq, x+cotecarre, y );
curveTo( x+cotecarre, y-carreq, x+change, y-change );
curveTo( x+carreq, y-cotecarre, x, y-cotecarre );
curveTo( x-carreq, y-cotecarre, x-change, y-change );
curveTo( x-cotecarre, y-carreq, x-cotecarre, y );
curveTo( x-cotecarre, y+carreq, x-change, y+change );
curveTo( x-carreq, y+cotecarre, x, y+cotecarre );
endFill();
//Fin du traçage de l'objet et fin du remplissage
/* Le "curveto" est une instruction de 4 paramètres qui donne
- la direction de départ en X
- la direction de départ en Y
- le point de destination en X
- le point de destination en Y
Curveto doit être accompagné de "linestyle", "beginfill", et "moveto" pour démarrer le premier point */
}
}
C'est tout.
Vous pouvez aussi faire autrement, mais l'exemple décrit concerne le Script...