CXXII. Shockwave Flash

Introduction

PHP a la capacité de créer des animations Shockwave Flash grâce au module de Paul Haeberli : libswf module.

Note : Le support de SWF a été ajouté en PHP 4 RC2.

La bibliothèque libswf ne propose pas de support pour Windows. Le développement de cette bibliothèque a été stoppé, et la source n'est pas disponible pour assurer le portage vers les autres systèmes.

Pour une version plus à jour d'extension SWF, regardez donc les fonctions MING.

Pré-requis

Vous avez besoin de la bibliothèque libswf pour compiler PHP avec le support de cette extension. Vous pouvez télécharger cette bibliothèque ftp://ftp.sgi.com/sgi/graphics/grafica/flash/.

Installation

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.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

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.

MOD_COLOR (entier)

MOD_MATRIX (entier)

TYPE_PUSHBUTTON (entier)

TYPE_MENUBUTTON (entier)

BSHitTest (float)

BSDown (float)

BSOver (float)

BSUp (float)

OverDowntoIdle (entier)

IdletoOverDown (entier)

OutDowntoIdle (entier)

OutDowntoOverDown (entier)

OverDowntoOutDown (entier)

OverUptoOverDown (entier)

OverUptoIdle (entier)

IdletoOverUp (entier)

ButtonEnter (entier)

ButtonExit (entier)

MenuEnter (entier)

MenuExit (entier)

Exemples

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 ();
?>

Table des matières
swf_actiongeturl -- Retourne l'URL d'une animation Shockwave Flash
swf_actiongotoframe -- Joue un cadre puis stoppe
swf_actiongotolabel --  Joue le cadre Flash spécifié
swf_actionnextframe -- Avance d'un cadre
swf_actionplay --  Joue l'animation Flash à partir du cadre courant
swf_actionprevframe -- Recule d'un cadre
swf_actionsettarget -- Fixe le contexte des actions
swf_actionstop --  Arrête l'animation Flash
swf_actiontogglequality --  Choisit le niveau de qualité de l'animation Flash
swf_actionwaitforframe --  Ignore les actions si le cadre Flash n'est pas chargé
swf_addbuttonrecord --  Contrôle la situation, l'apparrance et la zone active du bouton Flash courant
swf_addcolor --  Fixe la couleur globale d'addition Flash (? : 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 Flash
swf_defineline -- Définit une ligne
swf_definepoly --  Définit un polygone Flash
swf_definerect -- Définit un rectangle
swf_definetext -- Définit une chaîne de texte
swf_endbutton --  Termine la définition du bouton Flash courant
swf_enddoaction -- Termine l'action courante
swf_endshape --  Complète la définition de la forme Flash 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 cadre courant
swf_labelframe -- Nomme le cadre courant
swf_lookat -- Définit une transformation de vue
swf_modifyobject -- Modifie un objet Flash
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 la 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éfinit le point de vue de l'utilisateur en coordonnées polaire
swf_popmatrix --  Dépile la matrice de transformations
swf_posround --  Active l'approximation des translations d'objets Flash
swf_pushmatrix --  Empile la matrice de transformations 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 cadre 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 Flash par texture
swf_shapefillbitmaptile --  Choisit le mode de remplissage par texture Flash répétée
swf_shapefilloff -- Désactive le remplissage de formes Flash
swf_shapefillsolid --  Fixe la couleur pour le style courant de remplissage Flash
swf_shapelinesolid -- Fixe le style courant de ligne
swf_shapelineto -- Dessine une ligne
swf_shapemoveto -- Change la position courante
swf_showframe -- Affiche le cadre courant
swf_startbutton -- Commence la définition d'un bouton
swf_startdoaction --  Commence la description d'une liste d'actions pour le cadre courant
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