PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links 
search for in the  
previousshmop_writeswf_actiongeturlnext
Last updated: Tue, 09 Jul 2002
view the printer friendly version or the printer friendly version with notes or change language to English | Brazilian Portuguese | Chinese | Czech | Dutch | Finnish | German | Hungarian | Italian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Swedish | Turkish

XCIV. 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 � . 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.
User Contributed Notes
Shockwave Flash
add a note about notes
[email protected]
06-Jul-2000 12:23

Fonts must be in the directory named "fonts". Lets see... if your code is in /www/swf.php4, you sould make a directory /www/fonts. If you use the example above, copy the files dist/fonts/Mod.f and dist/fonts/Mod.l of the source distribution to into /www/fonts/ to use the font Mod. I think you can use also SET_SWF_FONTS or similar
[email protected]
11-Jul-2000 03:09

There are 2 prerequisites that must be met to run the test program:

1.) The directory where the test program resides in must be writeable to the PHP user (depending on installation either the apache user (module version of PHP4) or the script owner)

2.) The fonts directory from the swflib distribution must be in the same dir as the test script file so when the test file is foo/swftest.php the fonts dir should be foo/fonts/ containing Mod.f and Mod.l

Otherwise you will get a segfault when executing the test program.

[email protected]
05-Aug-2000 03:06

It would be instructive to explain the function of the example. It writes a swf file, it does not return it to a browser.

To get it to do what I expected it to do, I deleted the empty line 1, fixed line 2, made the directory writable, added the fonts, and added the line

Header("Location: test.swf");

just after the swf_closefile command.

Of course you don't really want to re-gererate the .swf file each time. And in most cases you want to add something like:

(HTML)(BODY)
(EMBED src="test.swf" quality=high pluginspage=" type="application/x-shockwave-flash" width="256" height="256")
(/EMBED)
(/BODY)(/HTML)

With the correct brackets of course.

[email protected]
05-Sep-2000 02:02

Writing on directory is not required. You can generate a run-time movie .. by replacing swf_openfile("<filename>", .... ) with swf_openfile("php://stdout", ....) and add before that an
Header("Content-type: application/x-shockwave-flash")

[email protected]
06-Oct-2000 05:14

For some other examples goto
[email protected]
28-Oct-2000 01:32

Quick patch for php 4.0.2 to enable sound.


[email protected]
20-Dec-2000 01:22

I am using a Generator alternative Turbine - - much cheaper than generator with a new version comming soon with builtin php support.
[email protected]
01-Jan-2001 05:15

As the installation guide said "Once you have mylib all you need to do is to configure --with-my[=DIR]
where DIR is a location containing the directories include and lib.
The include directory has to contain the my.h file and the lib directory has to contain the mylib.a file. "

I untar the file and name the dir "swf"
It locate at /usr/local/lib/swf

The problem is .the "DIR" in configure --with-my[=DIR] should be what?

I fill /usr/local/swf and it now work

PS. the lib and include dir of php is
/usr/local/lib/php/phplib/php

and

/usr/local/include/php

or it shoud fill /usr/local in [=DIR]

thanks alot

[email protected]
16-Jan-2001 02:11

This works also! Write into the script:
putenv ("SWFFONTPATH=/path_to_swf/fonts");
Maybe you can do the job with apache somehow, but it did't work for me. (With getenv it looked ok, but the swf failed to find the font)
isu

mcarr
24-Jan-2001 01:22

First the distribution inflates to dist directory not swf.

Second, just configuring PHP does this mean only do
./configure --with-swf=/usr/local/swf


?

or does it mean go though the regular sequence?
./configure --with-swf=/usr/local/swf
make
make install

And then switching to httpd directory
and doing:
make
make install


undefined reference to `swf_openfile'

[email protected]
26-Jan-2001 11:06

Hot to make it right.
I have a /kit/php4 folder
I made a flash folder into that folder. Looks like
/kit/php4/flash
Here made 2 folders called lib and include
/kit/php4/flash/include
/kit/php4/flash/lib
Copy libswf.a in lib folder and swf.h in include folder
go to /kit/php4 folder and ./configure --with-swf=flash [--add your other configure params]
make
make install
works great
Note. In fact I have all unziped swf kit in /kit/php4/flash folder and I added the new 2 folder [lib and include]. Then copy specified files into them.

[email protected]
15-May-2001 05:40

I finally found out how to use TRUETYPE-fonts in LIB_SWF!
Check

for USEFUL information about lib_swf.

regards, HotKey

[email protected]
17-May-2001 10:10

Getting the demo to work:
Symbolic link to the font directory didn't cut it, I had to copy the actual font folder over (I don't think it was a permission issue, either)

[email protected]
04-Jun-2001 10:20

Yo every, IN the installation i'v copy libswf.a into /usr/local/lib and swf.h into /usr/local/include/ .
So it work.
./configure --with-swf=/usr/local

daemorhedron@
06-Mar-2002 10:47

For those more interested in swf this website can be of use :

HTH!

daemorhedron
06-Mar-2002 04:50

For those having problems with libswf fonts you can add a system wide variable to point to the fonts dir in your shell.

In linux open up /etc/profile and add the lines :

SWFFONTPATH=/path/to/fonts
export SWFFONTPATH

Please not all of that is case sensitive, so copy it carefully. Logout and log back in to see changes (should affect all users). Test it from the command line with echo $SWFFONTPATH

For windows users you should be able to add

SET SWFFONTPATH=/path/to/fonts

in your autoexec.bat or autoexec.nt. Test it with echo %SWFFONTPATH%

HTH! =)

manuel DOT leiner AT gmx DOT de
28-Jul-2002 10:20

Just to mention for users of SuSE 8.0. libswf is included with the distro with no fonts. Therefore you must "patch" libswf support. As I didn't find the solution here before and I found a solution I am posting this fix:
Download the libswf package and uncompress to a directory (e.g. /usr/share/php/swf). Then include
"
SWFFONTPATH=/path/to/fonts
export SWFFONTPATH
"
Then log out and in again and restart apache. Then you should be able to use flash text functions within PHP.

[email protected]
29-Jul-2002 08:28

BTW, that above compile error is on FreeBSD 4.4
add a note about notes
previousshmop_writeswf_actiongeturlnext
Last updated: Tue, 09 Jul 2002
show source | credits | stats | mirror sites
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Sat Aug 31 06:19:44 2002 CEST