LXXII. 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

Avant tout, sachez que Ming n'est pas un acronyme. Ming est une bibliothèque 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.

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 fournies 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és en PHP 4.0.5.

Pré-requis

Pour utiliser Ming avec PHP, vous devez d'abord installer la librairy Ming. Le code source et les instructions d'installation sont disponibles 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.

Installation

Exemple 1. 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.

Maintenant, soit vous ajoutez simplement extension=php_ming.so dans votre fichier php.ini, soit vous ajoutez la ligne dl('php_ming.so'); au début de tous vos scripts qui utilisent Ming.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SWFBUTTON_HIT (entier)

SWFBUTTON_DOWN (entier)

SWFBUTTON_OVER (entier)

SWFBUTTON_UP (entier)

SWFBUTTON_MOUSEUPOUTSIDE (entier)

SWFBUTTON_DRAGOVER (entier)

SWFBUTTON_DRAGOUT (entier)

SWFBUTTON_MOUSEUP (entier)

SWFBUTTON_MOUSEDOWN (entier)

SWFBUTTON_MOUSEOUT (entier)

SWFBUTTON_MOUSEOVER (entier)

SWFFILL_RADIAL_GRADIENT (entier)

SWFFILL_LINEAR_GRADIENT (entier)

SWFFILL_TILED_BITMAP (entier)

SWFFILL_CLIPPED_BITMAP (entier)

SWFTEXTFIELD_HASLENGTH (entier)

SWFTEXTFIELD_NOEDIT (entier)

SWFTEXTFIELD_PASSWORD (entier)

SWFTEXTFIELD_MULTILINE (entier)

SWFTEXTFIELD_WORDWRAP (entier)

SWFTEXTFIELD_DRAWBOX (entier)

SWFTEXTFIELD_NOSELECT (entier)

SWFTEXTFIELD_HTML (entier)

SWFTEXTFIELD_ALIGN_LEFT (entier)

SWFTEXTFIELD_ALIGN_RIGHT (entier)

SWFTEXTFIELD_ALIGN_CENTER (entier)

SWFTEXTFIELD_ALIGN_JUSTIFY (entier)

SWFACTION_ONLOAD (entier)

SWFACTION_ENTERFRAME (entier)

SWFACTION_UNLOAD (entier)

SWFACTION_MOUSEMOVE (entier)

SWFACTION_MOUSEDOWN (entier)

SWFACTION_MOUSEUP (entier)

SWFACTION_KEYDOWN (entier)

SWFACTION_KEYUP (entier)

SWFACTION_DATA (entier)

Classes pré-définies

Ces classes sont définies par cette extension, et elles ne seront disponibles que si cette extension a été compilée avec PHP, ou bien chargée dynamiquement.

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

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Table des matières
ming_setcubicthreshold --  Fixe le niveau de seuil cubique (??)
ming_setscale --  Configure l'échelle (??)
ming_useswfversion --  Utilise la version de SWF (??)
SWFAction -- Crée une nouvelle action
SWFBitmap->getHeight -- Retourne la hauteur d'une bitmap Flash
SWFBitmap->getWidth -- Retourne la largeur d'une bitmap Flash
SWFBitmap -- Crée un objet bitmap
swfbutton_keypress --  Retourne l'option d'action pour keyPress (char)
SWFbutton->addAction -- Ajoute une action au bouton Flash
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 transformation
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 Flash
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'images 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 champ
SWFTextField->setcolor -- Modifie la couleur du champ texte
SWFTextField->setFont -- Modifie la police du champ
SWFTextField->setHeight -- Modifie la hauteur de la police du champ 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 champ texte Flash
SWFTextField->setname -- Nomme le champ texte
SWFTextField->setrightMargin -- Modifie la marge de droite
SWFTextField -- Crée un nouveau champ texte