Help-Site Computer Manuals
  Algorithms & Data Structures   Programming Languages   Revision Control
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

SWF ActionScript object.

SWF::Builder::ActionScript - SWF ActionScript object.


SWF::Builder::ActionScript - SWF ActionScript object.


  $mc->frame_action(1)->compile( <<AS_END );

    function move_mc(dx) {

        this._x += dx;



  my $mc_i = $mc->place;

  $mc_i->on('KeyPress', '<Left>')->compile('move_mc(-5)');

  $mc_i->on('KeyPress', '<Right>')->compile('move_mc(5)');



the SWF::Builder::ActionScript manpage supports some simple actions and compiling ActionScript compatible with FlashMX.


Methods for movie clip to create a frame action and a clip action. These return an SWF::Builder::ActionSctipt object.

$as = $mc->frame_action( $frame )
creates a frame action.

$as = $mc_i->on/onClipEvent( $event [, $key] )
creates a clip action. See the SWF::Builder::MovieClip manpage for details of the events.

Simple actions

These method add some simple actions to $as and return $as itself.

$as->gotoAndPlay( $frame )
tells the flash player to go to $frame.

$as->gotoAndStop( $frame )
tells the flash player to go to $frame and stop playing.

tells the flash player to play the movie clip.

tells the flash player to stop playing the movie clip.

$as->setProperty( $property, $value )
sets a movie clip property.

$as->moveto( $x, $y )
moves the movie clip to ($x, $y).

$as->r_moveto( $dx, $dy )
moves the movie clip to (current X + $dx, current Y + $dy).

$as->rotate( $r )
rotates the movie clip toward $r degree absolutely.

$as->r_rotate( $dr )
rotates the movie clip to +$dr degree right.

$as->scale( $xscale [, $yscale] )
magnifies/reduces the movie clip.

shows the movie clip.

hides the movie clip.

$as->tellTarget( $target, \&actionsub )
changes the target movie clip for actions in &actionsub. $target is a target path string in slash syntax. &actionsub is called with an ActionScript object whose target is changed. For example,

  $mc_i->on('Press')->tellTarget( 'mc_i2', sub {



rotates 'mc_i2' to 15-degree right when $mc_i is clicked.


the SWF::Builder::ActionScript manpage has a FlashMX-compatible compiler for complex actions.

$as->compile( $script_text [, %options] )
compiles $script_text. Options are as follows:
Optimize => $opt_string
controls optimization. Optimize option strings are as follows:

 O_PEEPHOLE  peephole optimization.

 O_CONSTEXP  calculate constant expressions.

 O_CONSTMATH calculate math funcions with constant args and constant properties.

 O_LEFTONCE  evaluate a lefthand side of an assignment expression only once. See ATTENTION.

 O_REGISTER  assign local variables to registers.

 O_LOCALREG  assign local variables to local registers using ActionDefineFunction2 (aka 'Optimize for Flash Player 6r65').

 O_6R65      same as 'O_LOCALREG'.

 O_ALL       enable all optimize options.

If you want to reset an optimize option, put a minus sign on the head of the option. All optimize options are joined with space or '|'. Default is 'O_ALL|-O_REGISTER|-O_LOCALREG' (enable all optimize options except O_REGISTER and O_LOCALREG).

ATTENTION: FlashMX ActionScript compiler seems to evaluate a lefthand side of a compound assignment operator twice, while ECMA-262 provides to evaluate it once. For example, FlashMX compiles 'a[i++] += 2' as same as 'a[i++] = a[i++] + 2', which counts up i twice. O_LEFTONCE controls this. If you want the same as FlashMX, give '-O_LEFTONCE'.

Trace => $mode
tells the compiler how to compile 'trace' action.
ignore all trace action.

evaluate the parameters of a trace action, but don't output anything. This is default.

output the value to another movie via a LocalConnection. You can use 'tracewindow.swf' at scripts directory as output window.

use ActionTrace tag.

Warning => $level
sets the warning level.

 0: deplicated actions.

 1: useless operator in void context.

 2: future reserved and other unsupported features.

$as->load( $script_filename [, %options] )
loads a script and compiles it. See compile method for %options.

Compiler bugs/features

Pragmas are not supported.

The compiler evaluates a lefthand side of an assignment expression once by default. See Optimize option.



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.