The SWFAction class
The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.
So what's left? The compiler recognises the following tokens:
There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:
- Returns the number of milliseconds (?) elapsed since the movie started.
- Returns a pseudo-random number in the range 0-seed.
- Returns the length of the given expression.
- Returns the given number rounded down to the nearest integer.
- concat(expr, expr)
- Returns the concatenation of the given expressions.
- Returns the ASCII code for the given character
- Returns the character for the given ASCII code
- substr(string, location, length)
- Returns the substring of length length at location location of the given string string.
Additionally, the following commands may be used:
- duplicateClip(clip, name, depth)
- Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.
- Removes the named movie clip.
- Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.
- startDrag(target, lock, [left, top, right, bottom])
- Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.
- Stop dragging my heart around. And this movie clip, too.
- Call the named frame as a function.
- getURL(url, target, [method])
- Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.
- loadMovie(url, target)
- Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).
- Go to the next frame.
- Go to the last (or, rather, previous) frame.
- Start playing the movie.
- Stop playing the movie.
- Toggle between high and low quality.
- Stop playing all sounds.
- Go to frame number num. Frame numbers start at 0.
- Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.
- Sets the context for action. Or so they say- I really have no idea what this does.
Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:
- currentFrame - (read-only)
- totalFrames - (read-only)
- alpha - transparency level
- visible - 1=on, 0=off (?)
- width - (read-only)
- height - (read-only)
- target - (read-only) (???)
- framesLoaded - (read-only)
- dropTarget - (read-only) (???)
- url - (read-only) (???)
- highQuality - 1=high, 0=low (?)
- focusRect - (???)
- soundBufTime - (???)
Table of Contents
- SWFAction->__construct - Creates a new SWFAction