LXXXV. 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/. Éditez 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.

MING_NEW (entier)

MING_ZLIB (entier)

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
SWFButton::addASound -- Associe un son avec une transition de bouton
SWFButton::setMenu -- Active le traçage comme comportement de menu de bouton
SWFDisplayItem::addAction -- Ajoute cet SWFAction à l'instance donnée SWFSprite
SWFDisplayItem::endMask -- Un autre moyen pour définir une couche MASK
SWFDisplayItem::getRot -- 
SWFDisplayItem::getX -- 
SWFDisplayItem::getXScale -- 
SWFDisplayItem::getXSkew -- 
SWFDisplayItem::getY -- 
SWFDisplayItem::getYScale -- 
SWFDisplayItem::getYSkew -- 
SWFDisplayItem::setMaskLevel -- Définit une couche MASK à un niveau
SWFDisplayItem::setMatrix -- Fixe la matrice de transformation de l'item
SWFFont::getAscent -- Retourne la hampe de la police ou 0 si elle est non disponible
SWFFont::getDescent -- Retourne le jambage de la police ou 0 s'il n'est pas disponible
SWFFont::getLeading -- Retourne l'interlignage de la police ou 0 s'il n'est pas disponible
SWFFont::getShape -- Retourne la forme glyphe d'un caractère en tant que chaîne de caractères
SWFFont::getUTF8Width -- Calcule la largeur de la chaîne de caractères donnée dans cette police à ca pleine taille
SWFFontChar::addChars -- Ajoute des caractères à une police pour exporter une police
SWFFontChar::addUTF8Chars -- Ajoute des caractères à une police pour exporter une police
SWFMovie::addExport -- 
SWFMovie::addFont -- 
SWFMovie::importChar -- 
SWFMovie::importFont -- 
SWFMovie::labelFrame -- Écrit un cadre
SWFMovie::saveToFile -- 
SWFMovie::startSound -- 
SWFMovie::stopSound -- 
SWFMovie::writeExports -- 
SWFPrebuiltClip -- Retourne un objet SWFPrebuiltClip
SWFShape::drawArc -- Dessine un arc de radius r centré à la position courante, d'un angle startAngle à endAngle mesuré dans le sens des aiguilles d'une montre à partir de midi
SWFShape::drawCircle -- Dessine un cercle de radius r centré à la position courante, dans le sens inverse des aiguilles d'une montre
SWFShape::drawCubic -- Dessine une courbe de Bézier cubique en utilisant la position courante et les trois points donnés en tant que position de contrôle
SWFShape::drawCubicTo -- Dessine une courbe de Bézier cubique en utilisant la position courante et les trois points donnés en tant que points de contrôle
SWFShape::drawGlyph -- Dessine le premier caractère dans la chaîne de caractères donnée dans la forme en utilisant la définition de glyphe de la police donnée
SWFSound -- Retourne un nouvel objet SWFSound d'un fichier donné
SWFSoundInstance::loopCount -- 
SWFSoundInstance::loopInPoint -- 
SWFSoundInstance::loopOutPoint -- 
SWFSoundInstance::noMultiple -- 
SWFSprite::labelFrame -- Écrit un cadre
SWFSprite::startSound -- 
SWFSprite::stopSound -- 
SWFText::addUTF8String -- Écrit le texte donné dans l'objet SWFText à la position du crayon, en utilisant la police, la hauteur, l'espacement et la couleur courante
SWFText::getAscent -- Retourne la hampe de la police courante à sa taille courante ou 0 si elle n'est pas disponible
SWFText::getDescent -- Retourne le jambage de la police courante à sa taille courante ou 0 s'il n'est pas disponible
SWFText::getLeading -- Retourne l'interlignage de la police courante à sa taille courante ou 0 s'il n'est pas disponible
SWFText::getUTF8Width -- Calcule la largeur de la chaîne de caractères donnée dans les objets de texte de police et taille courante
SWFTextField::addChars -- Ajoute des caractères à une police qui seront disponibles dans un champ texte
SWFTextField::setPadding -- Fixe le remplissage d'un champ de texte
SWFVideoStream::getNumFrames -- 
SWFVideoStream::setDimension -- 
SWFVideoStream -- Retourne un objet SWFVideoStream
ming_keypress -- Retourne le drapeau d'action pour keyPress(char)
ming_setcubicthreshold --  Fixe le niveau de seuil cubique (??)
ming_setscale --  Configure l'échelle (??)
ming_useConstants -- Utilise une constante de réserve (?)
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->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
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