XCV. Shockwave Flash

PHP a la capacité de créer des animations Shockwave Flash grâce au module de Paul Haeberli : libswf module. Vous pouvez télécharger libswf à ftp://ftp.sgi.com/sgi/graphics/grafica/flash. Une fois que vous avez libswf, tout ce qui reste à faire est de configurer PHP avec --with-swf[=DIR] où DIR est le dossier qui accueille les dossiers de include et lib. Le dossier include doit contenir le fichier swf.h file et le dossier lib doit contenir le fichier libswf.a. Si vous décompressez la distribution de libswf, les deux fichiers seront dans le même dossier. Par conséquent, vous devrez les mettre dans le dossier ad hoc manuellement.

Une fois que vous avez réussi à installer PHP avec Shockwave Flash, vous pouvez créer des animations Flash avec PHP. Vous serez surpris du résultat. Essayez donc ceci :

Exemple 1. Exemple SWF

<?php
  swf_openfile ("test.swf", 256, 256, 30, 1, 1, 1);
  swf_ortho2 (-100, 100, -100, 100);
  swf_defineline (1, -70, 0, 70, 0, .2);
  swf_definerect (4, 60, -10, 70, 0, 0);
  swf_definerect (5, -60, 0, -70, 10, 0);
  swf_addcolor (0, 0, 0, 0);
  swf_definefont (10, "Mod");
  swf_fontsize (5);
  swf_fontslant (10);
  swf_definetext (11, "This be Flash wit PHP!", 1);
  swf_pushmatrix ();
  swf_translate (-50, 80, 0);
  swf_placeobject (11, 60);
  swf_popmatrix ();
  for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix ();
    swf_scale (1-($p*.9), 1, 1);
    swf_rotate (60*$p,  'z');
    swf_translate (20+20*$p, $p/1.5, 0);
    swf_rotate (270*$p,  'z');
    swf_addcolor ($p, 0, $p/1.2, -$p);
    swf_placeobject (1, 50);
    swf_placeobject (4, 50);
    swf_placeobject (5, 50);
    swf_popmatrix ();
    swf_showframe ();
  }
  for ($i = 0; $i < 30; $i++) {
    swf_removeobject (50);
    if (($i%4) == 0) {
        swf_showframe ();
    }
  }
  swf_startdoaction ();
  swf_actionstop ();
  swf_enddoaction ();
swf_closefile ();
?>

Note : Le support de Flash a été ajouté en PHP 4.0RC2.

La librairie libswf n'est pas disponible pour Windows : son développement a été stoppé, et les sources ne sont plus disponibles pour permettre le portage vers d'autres systèmes.

Table des matières
swf_actiongeturl -- Retourne l'URL d'une animation Shockwave Flash.
swf_actiongotoframe -- Joue un frame puis stoppe.
swf_actiongotolabel --  Affiche le frame nommé.
swf_actionnextframe -- Avance d'un frame.
swf_actionplay --  Joue l'animation flash à partir du frame courant.
swf_actionprevframe -- Recule d'un frame.
swf_actionsettarget -- Fixe le contexte des actions.
swf_actionstop --  Arrête l'animation flash.
swf_actiontogglequality --  Choisit le niveau de qualité haut ou bas.
swf_actionwaitforframe --  Ignore les actions si le frame n'est pas chargé.
swf_addbuttonrecord --  Contrôle la situation, l'aparance et la zone active du bouton courant.
swf_addcolor --  Fixe la couleur globale d'addition (? : the global add color).
swf_closefile -- Ferme le fichier courant Shockwave Flash.
swf_definebitmap -- Définit une image bitmap.
swf_definefont --  Définit une police.
swf_defineline -- Définit une ligne.
swf_definepoly --  Définit un polygone.
swf_definerect -- Définit un rectangle.
swf_definetext -- Définit une chaîne de texte.
swf_endbutton --  Termine la définition du bouton courant.
swf_enddoaction -- Termine l'action courante.
swf_endshape --  Complète la définition de la forme courante.
swf_endsymbol -- Termine la définition de symbole.
swf_fontsize -- Change la taille de la police.
swf_fontslant -- Change l'inclinaison de la police courante.
swf_fonttracking -- Change l'espacement des caractères.
swf_getbitmapinfo -- Lit les informations sur une image.
swf_getfontinfo --  Retourne la hauteur du A majuscule, et du x minuscule.
swf_getframe -- Retourne le numéro de frame courant.
swf_labelframe -- Nomme le frame courant.
swf_lookat -- Définit une transformation de vue.
swf_modifyobject -- Modifie un objet.
swf_mulcolor --  Fixe la couleur globale de multiplication (? : the global multiply color).
swf_nextid -- Retourne le prochain identifiant d'objet libre.
swf_oncondition --  Décrit une transition utilisée pour déclencher une liste d'actions.
swf_openfile -- Ouvre un nouveau fichier Shockwave Flash
swf_ortho2 --  Définit une projection orthogonale à 2 dimensions entre les coordonnées utilisateur et le port courant.
swf_ortho --  Définit une projection orthogonale entre les coordonnées utilisateur et le port courant.
swf_perspective --  Définit une projection orthogonale à 3 dimensions entre les coordonnées utilisateur et le port courant
swf_placeobject -- Place un objet sur la scène.
swf_polarview --  Défini le point de vue de l'utilisateur en coordonnées polaire.
swf_popmatrix --  Dépile la matrice de transformation.
swf_posround --  Active l'approximation des translation d'objets.
swf_pushmatrix --  Empile la matrice de transformation courante dans la pile.
swf_removeobject -- Enlève un objet.
swf_rotate -- Rotation de la transformation courante.
swf_scale -- Homothétie.
swf_setfont -- Change la police courante.
swf_setframe -- Fixe le frame courant.
swf_shapearc -- Dessine une arc de cercle.
swf_shapecurveto3 -- Dessine une courbe Bézier cubique.
swf_shapecurveto --  Dessine une courbe de Bézier quadratique entre deux points.
swf_shapefillbitmapclip --  Choisit le mode de remplissage par texture.
swf_shapefillbitmaptile --  Choisit le mode de remplissage par texture repétée.
swf_shapefilloff -- Inactive le remplissage.
swf_shapefillsolid --  Fixe la couleur pour le style courant de remplissage.
swf_shapelinesolid -- Fixe le style courant de ligne.
swf_shapelineto -- Dessine une ligne.
swf_shapemoveto -- Change la position courante.
swf_showframe -- Affiche le frame courant.
swf_startbutton -- Commence la définition d'un bouton.
swf_startdoaction --  Commence la description d'une liste d'action pour la frame courante.
swf_startshape -- Commence une forme complexe.
swf_startsymbol -- Définit un symbole.
swf_textwidth -- Retourne la longueur d'une chaîne.
swf_translate -- Translate la transformation courante.
swf_viewport --  Sélectionne une nouvelle zone pour un dessin ultérieur.