Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SWF::Builder(3)	      User Contributed Perl Documentation      SWF::Builder(3)

       SWF::Builder - Create SWF movie.

	 use SWF::Builder;

	 my $movie = SWF::Builder->new
	   ( FrameRate => 15,
	     FrameSize => [0, 0, 400, 400],
	     BackgroundColor =>	'ffffff'

	 my $shape = $movie->new_shape	 # red triangle.
	   ->linestyle(1, '000000')

	 my $instance =	$shape->place;

	 for (my $x = 0; $x < 400; $x++) {

       SWF::Builder is a wrapper of SWF::File.	It provides an easy way	to
       create SWF6 movie.

       The SWF movie consists a	dictionary of character	definitions and	a
       hierarchical group of movie clips.  You create a	movie by following

       1.  create a '_root' movie by SWF::Builder->new.

       2.  define characters such as shapes, fonts, texts, movieclips, and so
	   on, by $movie->new_XXX methods.

       3.  get a display instance of the character by $char->place.

       4.  move, scale,	and rotate the instance	every frame.

       5.  repeat 2-4 if you need.

       6.  save	the whole movie	by $movie->save.

   '_root' movie
       The '_root' movie is a top of the movie clip hierarchy.	It has
       properties of the whole SWF movie. It also has character	constructors
       and other methods for movie. See	the next section for details.

       $movie =	SWF::Builder->new( [FrameRate => $rate,	FrameSize => [$xmin,
       $ymin, $xmax, $ymax], BackgroundColor =>	$color,	Version	=> $version] )
	   creates a new '_root' movie.	It can take three optional named
	   parameters.	FrameRate is a frame count per second. FrameSize is a
	   box size of frames, which is	an array reference of the coordinates
	   of top-left and bottom-right	of the box in pixels.  BackgroundColor
	   is a	background color of the	movie. It can take a six-figure
	   hexadecimal string, an array	reference of R,	G, and B value,	an
	   array reference of named parameters such as [Red => 255], and
	   SWF::Element::RGB object.  Version is a version number of the SWF.
	   It must be 6	and above.

       $movie->FrameRate( $rate	)
       $movie->FrameSize( $xmin, $ymin,	$xmax, $ymax )
       $movie->BackgroundColor(	$color )
	   sets	the property. See SWF::Builder->new.

       $movie->use_namespace( $namespace )
	   prepares ActionScript namespace. For	example,
	   $movie->use_namespace('SWF.Builder')	creates	movieclip which	is
	   initialized by

	       if (_global.SWF == undefined) {
		   _global.SWF = new Object();
	       if (_global.SWF.Builder == undefined) {
		   _global.SWF.Builder = new Object();

	   and place the movieclip on the first	frame of the root movie.

	   returns SWF::Builder::ActionScript object to	initialize the root

	   deactivate/reactivate auto_namer. Default is	active.	 Auto_namer
	   gives a suitable name to characters and display instances
	   automatically when their name is referred before being named

       $movie->save( $filename )
	   saves the movie.

   Character constructors
	   returns a new shape (type: Shape).  See
	   SWF::Builder::Character::Shape for the detail.

       $mc->new_font( $fontfile	[, $fontname] )
	   returns a new font (type: Font).  $fontfile is a font file name. It
	   should be a TrueType	font file (ttf/ttc).  Optional $fontname is a
	   font	name referred by HTMLs in dynamic texts.  It is	taken from the
	   TrueType file if not	defined.  See SWF::Builder::Character::Font
	   for the detail.

       $mc->new_static_text( [$font, $text] )
	   returns a new static	text (type: Text), which is fixed by authoring
	   and cannot be changed at playing time.  See
	   SWF::Builder::Character::Text for the detail	of a text.

       $mc->new_edit_text( [$font, $text] )
       $mc->new_dynamic_text( [$font, $text] )
       $mc->new_html_text( [$html] )
       $mc->new_text_area( $width, $height )
       $mc->new_input_field( [$length] )
       $mc->new_password_field(	[$length] )
	   return new dynamic editable text variations (type: EditText).  See
	   SWF::Builder::Character::EditText for the detail.

	   returns a new movie clip (type: MovieClip).	See
	   SWF::Builder::Character::MovieClip for the detail.

	   returns a new gradient object.  See SWF::Builder::Gradient and
	   SWF::Builder::Character::Shape for the detail.

       $mc->new_jpeg( ... )
	   returns a new JPEG bitmap (type: Bitmap).  See
	   SWF::Builder::Character::Bitmap for the detail.

       $mc->new_bitmap(	$obj [,	$type] )
	   returns a new lossless bitmap (type:	Bitmap).  See
	   SWF::Builder::Character::Bitmap for the detail.

       $mc->import_asset( $url,	$name [, $type]	)
	   returns a character which will be imported from the SWF movie in
	   $url	by $name.  This	method does not	actually import	a character
	   but put an 'ImportAssets' tag on the	movie.	$type is a type	of the
	   character, such as 'Shape', 'Font', 'Text', 'EditText',
	   'MovieClip',	and 'Bitmap'.  Default is 'MovieClip'.	This method
	   does	not check whether a character which has	$name and $type	is
	   actually exported.

   Other methods for movies
       Here describe other common methods for root movie and movie clips.

       $mc->frame_action( $frame )
	   returns SWF::Builder::ActionScript object for a frame action.

       $mc->frame_label( $frame, $label	[, $anchorflag]	)
	   gives $label	to $frame to which ActionScripts can refer.  If	the
	   $anchorflag is set to 1, it is accessible as	an HTML	anchor.

       Display and export methods of characters	are described here.  See
       SWF::Builder::Character::* for details of type-specific methods.

       $disp_i = $char->place( [ MovieClip => $mc, Frame => $frame, above =>
       $another_i, below => $another_i,	clip_with => $mask_i ] )
	   places the character	on $mc and returns the display instance.  It
	   can take four optional named	parameters.  'MovieClip'(MC) is	a
	   parent movie	clip on	which the character is placed.	The movie clip
	   must	be under the same root movie with the movie clip in which the
	   character is	defined.  If MC	is not set, the	character is placed on
	   the movie clip in which it is defined.  'Frame' is a	first frame
	   number on which the character is placed. Default is 1.  You can set
	   the relative	depth of the new instance by 'above' and 'below'.
	   'clip_with' is a mask instance with which the character is clipped.

	   Font	character can't	place itself.

       $mask_i = $char->place_as_mask( [ MovieClip => $mc, Frame => $frame,
       above =>	$another_i, below => $another_i	] )
	   places the character	on $mc as the mask object (clipping layer) and
	   returns the mask instance.  It can take optional parameters as same
	   as 'place' method except 'clip_with'.  You can handle the mask
	   instance as same as the display instance.

	   Only	Shape and Text characters can place_as_mask.

       $char->name( [$name] )
	   gives a name	to the character, exports the character, and returns
	   the name.  ActionScripts can	refer the character as $name.  Other
	   movies can import the character by $name.  When you call 'name'
	   method without a parameter, the method simply returns the name of
	   the character. If the character is not named	yet and	auto_namer is
	   active, auto_namer gives a suitable name.

       $char->export_asset( [$name] )
	   Same	as $char->name.

   Display instances
       It is necessary to get the display instance to show the defined
       character.  Each	instance has its own timeline tied to the parent movie
       clip and	the current frame to move, to rotate, etc.

       $disp_i->name( [$name] )
	   gives a name	to the display instance	to which ActionScripts can
	   refer and returns the name.	When you call 'name' method without a
	   parameter, the method simply	returns	the name of the	character. If
	   the character is not	named yet and auto_namer is active, auto_namer
	   gives a suitable name.

       $fobj = $disp_i->frame( $frame )
	   gets	the specified frame object of the display instance and sets
	   the current frame of	the display instance to	$frame.

	   Moving, rotating, scaling, and any other matrix transforming	of the
	   display instance are	handled	in a frame by frame via	a frame
	   object.  When a frame object	is not specified, the 'current frame
	   object' kept	by the display item is used.  The current frame	is
	   counted up after it is used.

       $fobj/$disp_i->moveto( $x, $y )
	   moves the display item to ($x, $y) at the (current) frame.

       $fobj/$disp_i->r_moveto(	$dx, $dy )
	   moves the display item relatively ( to (former X + $x, former Y +

       $fobj/$disp_i->scale( $xscale [,	$yscale] )
	   magnifies/reduces the display item at the (current) frame.  The
	   scaling effect is accumulative.

       $fobj/$disp_i->rotate( $angle )
	   rotates the display item at the (current) frame.  The rotation
	   angle is accumulative.

	   resets the rotation and scaling at the (current) frame.

	   removes the display instance	from the parent	movie clip at the
	   (current) frame.

	   gets	the transformation matrix of the display instance at the
	   (current) frame.  The result	is an SWF::Element::MATRIX object.

       $fobj/$disp_i->frame_label( $label [, $anchorflag] )
	   same	as those for movie clips, setting the frame number to that of
	   the frame object.

       Copyright 2003 Yasuhiro Sasama (ySas), <>

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.24.1			  2017-07-02		       SWF::Builder(3)


Want to link to this manual page? Use this URL:

home | help