LIII. Ming pour Flash

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utiliser ce module à vos risques et périls.

Introduction

Ming est une librairie open-source (LGPL) qui vous permet de créer des animations au format Flash. Ming supporte toutes les fonctionnalités de Flash 4 : les formes (shapes), les gradients, les images bitmaps (JPEG et PNG), les morphing (transformations d'une forme en une autre), les textes, actions, sprites (mini animations), le streaming MP3 et les transformations de couleurs. Le seul ajout futur est celui des événements sons.

Ming n'est pas un acronyme.

Notez que toutes les distances spécifiées (longueurs, distances, tailles...) sont en "twips", c'est-à-dire 20 unités par pixels. C'est plus ou moins arbitraire, car le lecteur Flash fait une mise à l'échelle avec les valeurs qui lui sont fournis dans la balise embed, ou la frame courante si la balise embed n'est pas utilisée.

Ming propose de nombreux avantages par rapport à l'extension swf. Vous pouvez utiliser Ming sur tous les OS où vous pouvez compiler le code, tandis que swf est limité à Windows. Ming vous évite la déconcertante complexité du format SWF, en transformant les éléments des animations en objets PHP. Enfin, Ming est toujours en cours de développement et surveillé par son auteur : si vous souhaitez une nouvelle fonctionnalité, dites le lui : ming@opaque.net.

Ming et tous les objets cités ont été ajouté en PHP 4.0.5.

Installation

Pour utiliser Ming avec PHP, vous devez d'abord installer la librairy Ming. Le code source et les instructions d'installation sont disponible sur la page d'accueil de Ming : http://www.opaque.net/ming/, avec des exemples un tutorial et l'actualité Ming.

Téléchargez l'archive Ming. Décompressez la et allez dans le dossier Ming. Faites "make", puis "make install".

Cela va compiler le fichier libming.so et l'installer dans /usr/lib/, et copier ming.h into /usr/include/. Editez la ligne PREFIX= dans le fichier Makefile pour indiquer votre dossier d'installation.

Compilation CGI avec PHP (Unix)


       mkdir <phpdir>/ext/ming
       cp php_ext/* <phpdir>/ext/ming
       cd <phpdir>
       ./buildconf
       ./configure --with-ming <other config options>
       Compilez et installez PHP comme d'habitude.
       Redémarrez votre serveur web si nécessaire.
      

Compilation en module avec PHP (Unix)

téléchargez php_ming.so.gz. Décompressez le et copiez le dans votre dossier de modules PHP (vous pouvez trouver votre dossier de module PHP en utilisant la commande php-config --extension-dir). Ensuite, ajoutez la ligne extension=php_ming.so dans votre fichier php.ini, ou bien ajoutez dl('php_ming.so'); en haut de tous vos scripts Ming.

Comment utiliser Ming

Ming introduit 13 objet en PHP. Pour les utilisez, vous devez être familier avec les objets.

Table des matières
SWFMovie -- Crée un objet 'animation'.
SWFMovie->output -- Envoie votre animation au navigateur.
SWFMovie->save -- Sauve dans un fichier.
SWFMovie->add -- Ajoute un objet dans une animation.
SWFMovie->remove -- Supprime un objet d'une animation.
SWFMovie->setbackground -- Modifie la couleur de fond.
SWFMovie->setrate -- Modifie la vitesse de l'animation.
SWFMovie->setdimension -- Modifie les dimensions de l'animation.
SWFMovie->setframes -- Modifie le nombre total d'images dans l'animation.
SWFMovie->nextframe -- Passe à l'image suivante.
SWFMovie->streammp3 -- Envoie un fichier MP3 en streaming.
SWFDisplayItem -- Crée un nouvel objet d'affichage displayitem.
SWFDisplayItem->moveTo -- Déplace un objet en coordonnées globales.
SWFDisplayItem->move -- Déplace un objet en coordonnées relatives.
SWFDisplayItem->scaleTo -- Etire un objet en coordonnées globales.
SWFDisplayItem->scale -- Etire un objet relativement.
SWFDisplayItem->rotateTo -- Tourne un objet en angle absolu.
SWFDisplayItem->Rotate -- Fait tourner une forme relativement.
SWFDisplayItem->skewXTo -- Incline suivant les X.
SWFDisplayItem->skewX -- Incline suivant les X relativement.
SWFDisplayItem->skewYTo -- Incline suivant les Y.
SWFDisplayItem->skewY -- Incline suivant les Y relativement.
SWFDisplayItem->setDepth -- Modifie la place en profondeur (z-order)
SWFDisplayItem->remove -- Supprime un objet d'une animation
SWFDisplayItem->setName -- Nomme un objet
SWFDisplayItem->setRatio -- Modifie le ratio de l'objet.
SWFDisplayItem->addColor -- Ajoute une couleur à une transoformation.
SWFDisplayItem->multColor -- Multiplie la couleur de transformation.
SWFShape -- Crée une nouvelle forme.
SWFShape->setLine -- Modifie le style de ligne de la forme.
SWFShape->addFill -- Ajoute un remplissage plein à la forme.
SWFShape->setLeftFill -- Modifie la couleur de rastérisation de gauche.
SWFShape->setRightFill -- Modifie la couleur de rastériation de droite.
SWFShape->movePenTo -- Déplace le stylo.
SWFShape->movePen -- Déplace le stylo relativement.
SWFShape->drawLineTo -- Dessine une ligne.
SWFShape->drawLine -- Dessine une ligne relativement.
SWFShape->drawCurveTo -- Dessine une courbe.
SWFShape->drawCurve -- Dessine une courbe relativement.
SWFGradient -- Crée un objet gradient
SWFGradient->addEntry -- Ajoute une couleur à la liste du gradient.
SWFBitmap -- Crée un objet bitmap
SWFBitmap->getWidth -- Retourne la largeur d'une bitmap.
SWFBitmap->getHeight -- Retourne la hauteur d'une bitmap.
SWFFill -- Crée un objet de remplissage
SWFFill->moveTo -- Déplace l'origine de l'objet SWFFill
SWFFill->scaleTo -- Modifie l'échelle de la forme
SWFFill->rotateTo -- Tourne la forme
SWFFill->skewXTo -- Incline (abscisses)
SWFFill->skewYTo -- Incline (ordonnées)
SWFMorph -- Crée un morphing.
SWFMorph->getshape1 -- Sélectionne la forme de départ
SWFMorph->getshape2 -- Sélectionne la forme de fin
SWFText -- Crée un nouvel objet texte.
SWFText->setFont -- Sélectionne la police courante
SWFText->setHeight -- Modifie la hauteur de la police courante
SWFText->setSpacing -- Modifie l'espacement de police
SWFText->setColor -- Modifie la couleur de la police
SWFText->moveTo -- Déplace le stylo de texte
SWFText->addString -- Ajoute du texte
SWFText->getWidth -- Calcule la longueur d'une chaîne
SWFFont -- Charge une police
swffont->getwidth -- Retourne la taille de la chaîne
SWFTextField -- Crée un nouveau champs texte
SWFTextField->setFont -- Modifie la police du champs
SWFTextField->setbounds -- Sélectionne la largeur et hauteur du champs
SWFTextField->align -- Modifie l'alignement du texte
SWFTextField->setHeight -- Modifie la hauteur de la police du champs texte.
SWFTextField->setLeftMargin -- Modifie la marge de gauche.
SWFTextField->setrightMargin -- Modifie la marge de droite.
SWFTextField->setMargins -- Modifie les marges du champs texte.
SWFTextField->setindentation -- Modifie l'indentation de la première ligne.
SWFTextField->setLineSpacing -- Modifie l'espacement de lignes.
SWFTextField->setcolor -- Modifie la couleur du champs texte
SWFTextField->setname -- Nomme le champs texte
SWFTextField->addstring -- Ajoute au texte
SWFSprite -- Crée un sprite
SWFSprite->add -- Ajoute un objet à un sprite
SWFSprite->remove -- Supprime un objet dans un sprite
SWFSprite->setframes -- Fixe le nombre maximum d'image dans le sprite.
SWFSprite->nextframe -- Va à la prochaine image du sprite.
SWFbutton -- Crée un nouveau bouton.
SWFbutton->addShape -- Ajoute une forme à un bouton
SWFbutton->setUp -- Alias de SWFbutton->addShape(shape, SWFBUTTON_UP)
SWFbutton->setOver -- Alias de addShape(shape, SWFBUTTON_OVER)
SWFbutton->setDown -- Alias de addShape(shape, SWFBUTTON_DOWN)
SWFbutton->setHit -- Alias de addShape(shape, SWFBUTTON_HIT)
SWFbutton->addAction -- Ajoute une action au bouton
SWFbutton->setAction -- Assigne l'action du bouton
SWFAction -- Crée une nouvelle action.