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