PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<shmop_writeswf_actiongeturl>
view the version of this page
Last updated: Sat, 19 Apr 2003

XCV. Shockwave Flash Funktionen

PHP erm�glicht es Shockwave Flash Dateien mit Paul Haeberli's libswf Modul zu erzeugen. Sie k�nnen das libswf-Modul unter herunterladen. Wenn Sie das Modul geladen haben, brauchen Sie nur noch PHP mit dem Modul zu konfigurieren (--with-swf[=DIR] ), wobei DIR f�r das Verzeichnis steht, welches die Verzeichnisse include und lib beinhaltet. Das include-Verzeichnis muss die swf.h-Datei und das lib-Verzeichnis die libswf.a-Datei enthalten. Wenn Sie die Distribution entpacken, werden beide Dateien in ein Verzeichnis entpackt. Daher m�ssen Sie die Dateien manuell in die richtigen Verzeichnisse kopieren.

Haben Sie PHP erfolgreich mit Shockwave Flash Unterst�tzung installiert, k�nnen Sie Shockwave Flash-Dateien via PHP erstellen. Sie werden �berrascht sein von den M�glichkeiten, die sich Ihnen bieten. Schauen Sie sich den folgenden Quellcode-Auschnitt an:

Beispiel 1. SWF Beispiel

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

Anmerkung: SWF-Unterst�tzung wurde in PHP4 RC2 hinzugef�gt.

Inhaltsverzeichnis
swf_actiongeturl -- Get a URL from a Shockwave Flash movie
swf_actiongotoframe -- Play a frame and then stop
swf_actiongotolabel --  Display a frame with the specified label
swf_actionnextframe -- Go foward one frame
swf_actionplay --  Start playing the flash movie from the current frame
swf_actionprevframe -- Go backwards one frame
swf_actionsettarget -- Set the context for actions
swf_actionstop --  Stop playing the flash movie at the current frame
swf_actiontogglequality --  Toggle between low and high quality
swf_actionwaitforframe --  Skip actions if a frame has not been loaded
swf_addbuttonrecord --  Controls location, appearance and active area of the current button
swf_addcolor --  Setzt die "global add"-Farbe auf den spezifizierten rgba-Wert
swf_closefile -- Schlie�t die aktuelle SWF-Datei
swf_definebitmap -- Define a bitmap
swf_definefont --  Defines a font
swf_defineline -- Define a line
swf_definepoly --  Define a polygon
swf_definerect -- Define a rectangle
swf_definetext -- Define a text string
swf_endbutton --  End the definition of the current button
swf_enddoaction -- End the current action
swf_endshape --  Completes the definition of the current shape
swf_endsymbol -- End the definition of a symbol
swf_fontsize -- Change the font size
swf_fontslant -- Set the font slant
swf_fonttracking -- Set the current font tracking
swf_getbitmapinfo -- Get information about a bitmap
swf_getfontinfo --  The height in pixels of a capital A and a lowercase x
swf_getframe -- Holt die Frame-Nummer des aktuellen Frames
swf_labelframe -- Beschriftet den aktuellen Frame
swf_lookat -- Define a viewing transformation
swf_modifyobject -- Modify an object
swf_mulcolor --  Setzt die "global multiply"-Farbe auf den spezifizierten rgba-Wert
swf_nextid -- Returns the next free object id
swf_oncondition --  Describe a transition used to trigger an action list
swf_openfile -- �ffnet eine neue Shockwave Flash Datei
swf_ortho2 --  Defines 2D orthographic mapping of user coordinates onto the current viewport
swf_ortho --  Defines an orthographic mapping of user coordinates onto the current viewport
swf_perspective --  Define a perspective projection transformation
swf_placeobject -- Place an object onto the screen
swf_polarview --  Define the viewer's position with polar coordinates
swf_popmatrix --  Restore a previous transformation matrix
swf_posround --  Enables or Disables the rounding of the translation when objects are placed or moved
swf_pushmatrix --  Push the current transformation matrix back unto the stack
swf_removeobject -- Remove an object
swf_rotate -- Rotate the current transformation
swf_scale -- Scale the current transformation
swf_setfont -- Change the current font
swf_setframe -- Wechselt zu einem spezifizierten Frame
swf_shapearc -- Draw a circular arc
swf_shapecurveto3 -- Draw a cubic bezier curve
swf_shapecurveto --  Draw a quadratic bezier curve between two points
swf_shapefillbitmapclip --  Set current fill mode to clipped bitmap
swf_shapefillbitmaptile --  Set current fill mode to tiled bitmap
swf_shapefilloff -- Turns off filling
swf_shapefillsolid --  Set the current fill style to the specified color
swf_shapelinesolid -- Set the current line style
swf_shapelineto -- Draw a line
swf_shapemoveto -- Move the current position
swf_showframe -- Zeigt den aktuellen Frame an
swf_startbutton -- Start the definition of a button
swf_startdoaction --  Start a description of an action list for the current frame
swf_startshape -- Start a complex shape
swf_startsymbol -- Define a symbol
swf_textwidth -- Get the width of a string
swf_translate -- Translate the current transformations
swf_viewport -- Select an area for future drawing


User Contributed Notes
Shockwave Flash Funktionen
add a note
kawa at gui dot uva dot es
06-Jul-2000 01: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
adobernig at netway dot at
11-Jul-2000 04: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.

ssross at uswest dot net
05-Aug-2000 04: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.

ghisha at inwind dot it
05-Sep-2000 03: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")

boris at gamate dot com
06-Oct-2000 06:14

For some other examples goto
tbma at usa dot net
28-Oct-2000 02:32

Quick patch for php 4.0.2 to enable sound.


mike at nux dot co dot uk
20-Dec-2000 02:22

I am using a Generator alternative Turbine - - much cheaper than generator with a new version comming soon with builtin php support.
pizzagreezi at hotmail dot com
01-Jan-2001 06: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

isu at tozsdeforum dot hu
16-Jan-2001 03: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 02: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'

seek at byte-net dot ro
26-Jan-2001 12: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.

hotkey at hehe dot com
15-May-2001 06:40

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

for USEFUL information about lib_swf.

regards, HotKey

sbarnum at pointsystems dot com
17-May-2001 11: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)

descript at subakt dot fr
04-Jun-2001 11: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 11:47

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

HTH!

daemorhedron
06-Mar-2002 05: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 11: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.

kudzu at arkitekd dot com
29-Jul-2002 09:28

BTW, that above compile error is on FreeBSD 4.4
add a note

<shmop_writeswf_actiongeturl>
 Last updated: Sat, 19 Apr 2003
show source | credits | mirror sites 
Copyright © 2001-2003 The PHP Group
All rights reserved.
This mirror generously provided by: /
Last updated: Wed May 14 01:12:44 2003 CEST