<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.3 $ -->
 <reference id="ref.swf">
  <title>Shockwave Flash functions</title>
  <titleabbrev>SWF</titleabbrev>
  
  <partintro>
   
   <section id="swf.intro">
    &reftitle.intro;
    <para>
     PHP offers the ability to create Shockwave Flash files via Paul
     Haeberli's libswf module.
    </para>
    <note>
     <para>
      SWF support was added in PHP 4 RC2.
     </para>
     <para>
      The libswf does not have support for Windows. The development of
      that library has been stopped, and the source is not available
      to port it to another systems.
     </para>
     <para>
      For up to date SWF support take a look at the
      <link linkend="ref.ming">MING</link> functions.
     </para>
    </note>
   </section>
   
   <section id="swf.requirements">
    &reftitle.required;
    <para>
     You need the libswf library to compile PHP with support for this
     extension. You can download libswf at <ulink
     url="&url.swf;">&url.swf;</ulink>.
    </para>
   </section>
   
   <section id="swf.installation">
    &reftitle.install;
    <para>
     Once you have libswf all you  need to do is to configure <option
     role="configure">--with-swf[=DIR]</option> where DIR is a location
     containing the directories include and lib. The include directory
     has to contain the swf.h file and the lib directory has to contain
     the libswf.a file. If you unpack the libswf distribution the two
     files will be in one directory. Consequently you will have to copy
     the files to the proper location manually.
    </para>
   </section>
   
   <section id="swf.configuration">
    &reftitle.runtime;
    &no.config;
   </section>

   <section id="swf.resources">
    &reftitle.resources;
    &no.resource;
   </section>

   &reference.swf.constants;

   <section id="swf.examples">
    &reftitle.examples;
    <para>
     Once you've successfully installed PHP with Shockwave Flash
     support you can then go about creating Shockwave files from PHP.
     You would be surprised at what you can do, take the following
     code:
     <example>
      <title>SWF example</title>
      <programlisting role="php">
<![CDATA[
<?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 ();
?>
]]>
      </programlisting>
     </example>
    </para>
   </section>
  
  </partintro>

&reference.swf.functions;

 </reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->