trusty (3) SWF::Movie.3pm.gz

Provided by: libswf-perl_0.4.5-1ubuntu5_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