Provided by: libswf-perl_0.4.5-1.2ubuntu7_amd64 bug

NAME

       SWF::Movie - SWF Movie class

SYNOPSIS

               use SWF::Movie;

               $m = new SWF::Movie();
               $m = SWF::Movie::newSWFMovieWithVersion(8);

DESCRIPTION

       SWF::Movie is the root object of your flashfile. It contains all your other objects you
       want in your movie.  Ming supports many Flash4, Flash5 F6,7,8,9.. features.

       The SWF::Movie object contains information like the flashversion, the size, the frames per
       second, the background color. Except that, the SWF::Movie behaves like a SWF::MovieClip.
       It only cannot be added to another SWF::Movie or SWF::MovieClip.

       Notice: The version of your flashmovie can be set by the object SWF. See SWF for more
       details.

METHODS

       $m = new SWF::Movie()
           Creates a Movie object.

       $m = newSWFMovieWithVersion(version)
           Creates a Movie object with version value (e.g. 8) set.

       $displayItem=$m->add($SWFObject)
           Add an instance of a SWF-object to your current frame. The returnvalue is a
           SWF::DisplayItem.

                   Some possible SWF-objects are:

                   SWF::Action
                   SWF::MovieClip
                   SWF::Shape
                   SWF::Sound
                   SWF::Text
                   SWF::TextField
                   SWF::Bitmap
                   SWF::PrebuiltClip

                   $m->add($shape); # possible, but not more accessible for us
                   $shape_1 = m->add($shape); # good instance

       $m->addExport($block, $name)
           Prepare linkage to Action script code.

                   $m->addExport($mc, 'mc');
                   # and later inside action script....:
                   $ac = new SWF::Action("_root.attachMovie('mc','mc1',11);");

       $m->writeExports()
           Export prepared names to Action script.

       remove($displayItem)
           Removes the given SWF::DisplayItem instance from the current and following frames of
           the main timeline.

                   $m->remove($shape_i);

       nextFrame()
           Finish a frame of the main timeline. New added objects will be added in the next
           frame.

                   $m->nextFrame();

       setNumberOfFrames($frames) =item setFrames($frames)
           Preset the number of frames of the main timeline. n not used frames before finishing
           the movie will filled with n nextFrame() statements.  If you inserted more nextFrame()
           commands than you set with setFrames() the setFrames() will be ignored.

                   $m->setFrames(100);

       $m->setBackground($red,$green,$blue)
           Set the background in red, green, blue values. Possible value are 0..255 or hexvalues
           0x0..0xff.

                   $m-setBackground(0xff,0x99,0x00); # orange bg
                   $m-setBackground(0,200,255)       # green bg

           A transparency level isn't available I asume. (In Flash MX/F6?). A transparent
           background can be set in the HTML-code for Internet Explorer. Please inform the
           Authors if that is available for nonIE-browsers.

       $m->namedAnchor($label)
           This function adds a named anchor to the movie.

       $m->setDimension(x,y)
           Set the dimension in pixel.

                   #ToDo:
                   #min: (0.0,0.0)   # ;-)
                   #max: (?,?)
                   #default: (0.0?,0.0?)
                   #Behavior when values <min: ming sets it to min
                   #Behavior when values >max: ming sets it to max

                   $m->setDimension(200,100);
                   $m->setDimension(123.45,67.89);

       $m->setRate(int)
           Set the playing speed in frames/second.

                   #ToDo:
                   #min: 0
                   #max: ?
                   #default: ?
                   #Behavior when value <min: ming sets it to min
                   #Behavior when value >max: ming sets it to max

                   $m->setRate(30);

       $m->protect()
           A feature that prevents only flashnewbies from importing your movie into Macromedias
           Flash authoring tools. It cannot protect your content from being loaded by other
           flashmovies, deleting of the protection with a hexeditor or disassembling with tools.

       $m->setSoundStream($soundstream, [$skip])
           Puts an SWF::SoundStream object as streaming sound into the main timeline.  The
           optional skip parameter describes the time in seconds to be skiped.

                   $m->setSoundStream($soundstream);

       $m->streamMp3($filename)
           Simplifies the setSoundStream(). You only need the filename.

                   $m->streamMp3("iloveyou.mp3");

           Hint: If you want to reuse this sound/mp3 later in this movie, create a reusable
           SWF::SoundStream object and then put it into setSoundstream().

       $soundinstance = $m->startSound($sound)
           Play a prepared SWF::Sound object into the main timeline. Returns an object of
           SWF::SoundInstance.

                   $sound = new SWF::Sound("loveyoutoo.mp3", SWF_SOUND_MP3_COMPRESSED );
                   $si = $m->startSound($sound);

       $m->stopSound($sound)
           Stop playing sound.

       $m->labelFrame($string)
           Gives the current frame a label that can be used by actionscript as anchor. Then you
           don't have to count your nextFrame() lines anymore. :-)

                   $m->labelFrame("win");
                   #ToDo:
                   #max characters of a label???
                   #What happen if we put there a big string??
                   #Which characters are allowed??

       $m->setScriptLimits($maxRecursion, $timeout)
           Set limits for resource usage, related to action script. Setting timeout will protect
           your computer from too long loops and stack overflow. So endless scripts like "while
           (1){};" will be interrupted after timeout seconds.  The default recursion depth is
           265, the default timeout is 15 seconds.

       $m->defineScene($offset, $name)
           Define scenes for the movies' main timeline using integer value for frame offset and
           name of the scene.

       $m->setNetworkAccess($flag)
           Sets network / fileaccess policy. If the flag is set to 0 a localy loaded movie will
           be unable to access the network but is allowed to access local files.  If the flag ist
           set to 1 a localy loaded movie will be unable to access local files but is allowed to
           access the network. For SWF >= 8: default is 0,

       $m->addMetadata($xml)
           Adds Metadata to the movie: this function inserts a metadata-tag into the movie. Only
           one metadata-tag can be set to a movie.  Metadata is specified as an XML string.

       $m->assignSymbol($character, $name)
           Assigns a symbolic name for a SWF::Character object.  Such classes are available for
           usage in other SWF files and can be referenced from inside the current movie.  To
           assign a symbol to the root movie use NULL as character value.

       $m->setTabIndex($depth, $index)
           Sets tab index for specified depth level.

       $fontchar = $m->addFont($font)
           Adds a font to a movie. An object of SWF::FontCharacter class returned.

                   $font = new SWF::Font('Arial.fdb');
                   $fch  = $m->addFont($font);

       $fontchar = $m->importFont($file, $name)
           Imports a font from an other SWFFile. An object of SWF::FontCharacter class returned.

                   $fch = $m->importFont('textField.swf', 'Arial337a');

       $m->importCharacter($url, $name)
           Not yet documented (ToDo!)

       $result = $m->replace($item, $block)
           This method replaces a displayable character with a new one.  Returns 0 on success ,
           -1 else.

                   $dispitem = $movie->add($shape1);
                   $movie->nextFrame();
                   print $movie->replace($dispitem, $shape2);
                   $movie->nextFrame();

       $written = $m->xs_output([$compresslevel])
       $written = $m->output([$compresslevel])
           Writes the SWF::Movie to stdout. This is normally used for webservers/cgi-scripts.
           Don't forget to send the "Content-Type:"-lines before writing out the movie.

           The parameter compresslevel is optional. compresslevel between 0 and 9. Higher values
           will be interpreted as 9. Values smaller 0 mean no compression. By default the
           SWF::Movie will be send without compression.  Notice: compression available since
           Flash MX(Flash 6). Ming does not check this for you if you write flash4 or flash5
           movies.

           Unlike xs_output() the output() method prepared for using via webservers (but not
           limited to webservers).

           Both methods return number of bytes written.

       $written = $m->save($filename [, $compresslevel])
           Method saves the SWF::Movie to a file and returns the number of bytes written.  The
           parameter compresslevel is optional. compresslevel between 0 and 9. Higher values will
           be interpreted as 9. Values smaller 0 mean no compression. By default the SWF::Movie
           will be saved without compression.  Notice: compression available since Flash MX(Flash
           6). Ming does not check this for you if you write flash4 or flash5 movies.

EXAMPLE

       3 examples: a regular minimal SWF::Movie, one with all methods and a more interesting.

       minimal empty example
                   #!/usr/bin/perl -w
                   use SWF::Movie;

                   $m = new SWF::Movie();
                   $m->nextFrame();
                   $m->save("emptyminimal.swf");

       full empty examples
                   #!/usr/bin/perl -w
                   use SWF::Movie;

                   $m = new SWF::Movie();
                   $m->setVersion(4);
                   $m->setBackground(0xff,0xcc,0x0);
                   $m->setDimension(200,100);
                   $m->protect();
                   $m->setRate(30);
                   $m->setFrames(10); # ming fills it automatic with frames

                   $m->nextFrame()
                   $m->save("empty.swf");

       streaming example
                   #!/usr/bin/perl -w
                   use SWF("Shape");
                   SWF::setVersion(6);

                   $m = new SWF::Movie();
                   $m->setBackground(0xff,0xcc,0x0);
                   $m->setDimension(200,100);
                   $m->setFrames(10);
                   $m->streamMp3("forever.mp3");

                   $s= new SWF::Shape();
                   $s->setLine(40,0xff,0xff,0);
                   $s->setRightFill(0xff,0,0);
                   $s->drawLine(50,0);
                   $s->drawLine(0,20);
                   $s->drawLineTo(0,0);

                   $s_1= $m->add($s);
                   $s_2= $m->add($s);
                   $s_1->move(50,40);
                   $s_2->move(10,40);
                   for($i=1;$i<5;$i++) {
                           $m->nextFrame();
                           $s_2->move(0,10);
                   }
                   $m->nextFrame();
                   print "Content-type: application/x-shockwave-flash\n\n";
                   $m->output(9); # with compression level 9 (since flash6)

AUTHOR

       Soheil Seyfaie (soheil at users.sourceforge.net), Albrecht Kleine and developers of
       ming.sourceforge.net

SEE ALSO

       SWF, SWF::Action, SWF::Bitmap, SWF::Button, SWF::Constants, SWF::DisplayItem, SWF::Fill,
       SWF::Font, SWF::FontCharacter, SWF::Gradient, SWF::Morph, SWF::MovieClip, SWF::Shape,
       SWF::PrebuiltClip, SWF::Sound, SWF::SoundStream, SWF::TextField, SWF::Text, SWF::Filter,
       SWF::Character