TUTORIELS 
Découvrir Ming

Page 1 | 2

Première approche de Ming, une bibliothèque permettant de générer à la volée des fichiers au format Flash (SWF) à partir de PHP, Python, ou C++...
 (10 décembre 2002)
 

Animons
Nous allons ici, afin de l'animer, faire du carré défini dans notre fichier un Movie-Clip (ou "sprite" pour Ming). Nous avons mis en gras les changements par rapport au fichier précédent.

(fichier 3.php)
<?php
  $ligne = new SWFShape();
  $ligne->setLine(1, 0, 0, 0);
  $ligne->drawLine(0, 220);

  $carre = new SWFShape();
  $carre->setRightFill($carre->addFill(0, 0, 255));
  $carre->movePenTo(-100, -100);
  $carre->drawLineTo(100, -100);
  $carre->drawLineTo(100, 100);
  $carre->drawLineTo(-100, 100);
  $carre->drawLineTo(-100, -100);

  $mc_carre = new SWFSprite();
  $i = $mc_carre->add($carre);

  for ($j=0; $j<90; $j++)
    {
    $mc_carre->nextFrame();
    $i->rotate(-1);
    }

  $swf = new SWFMovie();
  $swf->setDimension(800, 600);
  $swf->setBackground(255, 255, 255);

  $ligne1 = $swf->add($ligne);
  $ligne2 = $swf->add($ligne);
  $carre_tourne = $swf->add($mc_carre);

  $ligne1->moveTo(130, 240);
  $ligne2->moveTo(370, 240);
  $carre_tourne->moveTo(250, 350);

  header('Content-type: application/x-shockwave-flash');
  $swf->output();
?>

Après avoir dessiné le carré que nous comptons animer, nous créons avec le constructeur new SWFSprite() un MovieClip, sur lequel nous posons l'objet carre défini précédemment (ici encore, ceux qui connaissent l'interface Flash ne seront pas surpris: la notion d'objet est respectée). $i est ensuite le pointeur faisant référence à l'objet $carre que nous ajoutons dans le clip $mc_carre.

Arrive la boucle for(), qui nous permet d'animer la forme sans devoir répéter maintes fois le même mouvement... Sachant que nous voulons faire tourner le carré sur lui même, nous allons le bouger de 1° sur 90 "frames" ou "images" (une notion bien connue de ceux ayant déjà touché à Flash, qui peut sembler obscure aux autres, auxquels nous recommandons la lecture de notre "Introduction à ActionScript", qui présente les notions fondamentales de l'environnement Flash).
Ainsi, notre boucle for() défini que, tant que l'indicateur d'incrémentation $j n'a pas atteind 89, on déplace la tête de lecture sur l'image suivante avec la méthode nextFrame() de notre objet $mc_carre, et on applique une rotation à l'objet référéncé par $i avec la fonction rotate().

Enfin, comme précédemment, nous créons la scène, sa taille et sa couleur, nous y instancions les objets créés, et nous les positionnons. Pour terminer, nous envoyons l'ensemble des données au navigateur... Notre animation s'affiche.

Voici la fin de notre courte présentation de Ming. Il reste encore beaucoup à voir, et nous vous donnons rendez-vous pour d'autres articles...

Page 1 | 2

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page