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