Made to Order Software Corporation Logo

target

Get Timer

SWF Action
Action Category: 
Movie
Action Details: 
0
Action Identifier: 
52
Action Structure: 
<n.a.>
Action Length: 
0 byte(s)
Action Stack: 
push 1 (n)
Action Operation: 
r := current_movie.get_timer();
push(r);
Action Flash Version: 
4

Get the current movie timer in milliseconds and push it on the stack. The current movie is defined with the Set Target action.

This is equivalent to the number of frames that have been played so far.

This action is similar to Get Property of frames loaded.

Get Target

SWF Action
Action Category: 
Movie
Action Details: 
0
Action Identifier: 
69
Action Structure: 
<n.a.>
Action Length: 
0 byte(s)
Action Stack: 
pop 1 (o), push 1 (s)
Action Operation: 
o1 := pop();
r := target_of(o1);
push(r);
Action Flash Version: 
5

Pop an object, if it is a valid sprite (same as movie or thread), push it's path on the stack.

A sprite path can be used by different other actions such as the Goto Expression.

Sprite Properties

The following is the list of currently accepted properties or fields for the Get Property and the Set Property actions. Note that the properties can be specified with either an integer (type 7, requires V5.0+) or a single precision floating point (type 1, V4.0 compatible). And since strings are automatically transformed in a value when required, one can use a string to represent the property number (type 0).

Declare Function

SWF Action
Action Category: 
Control
Action Details: 
0
Action Identifier: 
155
Action Structure: 
string    f_name;
unsigned short   f_arg_count;
string   f_arg_name[f_arg_count];
unsigned short   f_function_length;
Action Length: 
-1 byte(s)
Action Stack: 
n.a.
Action Operation: 
create function f_name in the current target movie
Action Flash Version: 
5

Declare a function which later can be called with the Call Function action. The f_function_length1 defines the number of bytes that the function declaration takes. All the actions included in this block are part of the function. A function should terminate with a Return action. The value used by the return statement should be the only value left on the caller stack.

  • 1. Functions are limited to 65535 bytes in length.

Call Frame

SWF Action
Action Category: 
Movie
Action Details: 
0
Action Identifier: 
158
Action Structure: 
empty (this is a bug reported in the Macromedia documentation.)
Action Length: 
0 byte(s)
Action Stack: 
pop 1 (a)
Action Operation: 
a1 = pop();
if(is_string(a1)) {
  s1 := (string)a1;
  goto_frame_by_name(s1);
}
else {
  i1 = (int)a1;
  goto_frame_by_number(i1);
}
Action Flash Version: 
4

Pop a string or integer and call the corresponding frame.

This means:

  1. Search the corresponding frame,
  2. Execute its actions, and
  3. Continue with the action defined after this one.

The frame can be identified with a name or a number. It is also possible to specify a target movie ("<sprite name>.<frame name>"? - to be tested...)

DefineEditText

Tag Info
Tag Number: 
37
Tag Type: 
Define
Tag Flash Version: 
4
Brief Description: 

An edit text enables the end users to enter text in a Flash window.

Tag Structure: 
struct swf_defineedittext {
	swf_tag			f_tag;		/* 37 */
	unsigned short		f_edit_id;
	swf_rect		f_rect;
	unsigned		f_edit_has_text : 1;
	unsigned		f_edit_word_wrap : 1;
	unsigned		f_edit_multiline : 1;
	unsigned		f_edit_password : 1;
	unsigned		f_edit_readonly : 1;
	unsigned		f_edit_has_color : 1;
	unsigned		f_edit_has_max_length : 1;
	unsigned		f_edit_has_font : 1;
	if(version >= 6) {
		unsigned		f_edit_reserved : 1;
		unsigned		f_edit_auto_size : 1;
	}
	else {
		unsigned		f_edit_reserved : 2;
	}
	unsigned		f_edit_has_layout : 1;
	unsigned		f_edit_no_select : 1;
	unsigned		f_edit_border : 1;
	unsigned		f_edit_reserved : 1;
	unsigned		f_edit_html : 1;
	unsigned		f_edit_use_outlines : 1;
	if(f_edit_has_font) {
		unsigned short		f_edit_font_id_ref;
		unsigned short		f_edit_font_height;
	}
	if(f_edit_has_color) {
		swf_rgba		f_edit_color;
	}
	if(f_edit_has_max_length) {
		unsigned short		f_edit_max_length;
	}
	if(f_edit_has_layout) {
		unsigned char		f_edit_align;
		unsigned short		f_edit_left_margin;
		unsigned short		f_edit_right_margin;
		signed short		f_edit_indent;
		signed short		f_edit_leading;
	}
	string			f_edit_variable_name;
	if(f_edit_has_text) {
		string			f_edit_initial_text;
	}
};

Additional interactivity has been added in V4.0 of the SWF format. This is given by the use of edit boxes offering the end users a way to enter text as if the SWF movie was in fact an interactive form.

The text is defined in a variable (accessible in action scripts). It can be dynamically assigned and retrieved. It is legal to have an empty string as the variable name (not dynamically accessible).

DefineSound

Tag Info
Tag Number: 
14
Tag Type: 
Define
Tag Flash Version: 
2
Brief Description: 

Declare a sound effect. This tag defines sound samples that can later be played back using either a StartSound or a DefineButtonSound. Note that the same DefineSound block can actually include multiple sound files and only part of the entire sound can be played back as required.

Tag Structure: 
struct swf_definesound {
	swf_tag			f_tag;		/* 14 */
	unsigned short		f_sound_id;
	unsigned		f_sound_format : 4;
	unsigned		f_sound_rate : 2;
	unsigned		f_sound_is_16bits : 1;
	unsigned		f_sound_is_stereo : 1;
	unsigned long		f_sound_samples_count;
	unsigned char		f_sound_data[<variable size>];
};

A DefineSound tag declares a set of samples of a sound effect or a music.

The sound samples can be compressed or not, stereo or not and 8 or 16 bits. The different modes are not all available in version 2, although the same tag is used in newer versions with additional capabilities.

The f_sound_is_16bits is always set to 1 (16bits samples) if the samples are compressed (neither Rawnor Uncompressed).

The f_sound_rate represents the rate at which the samples are defined. The rate at which it will be played on the target computers may differ. The following equation can be used to determine the ...

Turn Watcher™

$14.99

The Turn Watcher Helmet with wings on the side and a gold medallion on the front.Turn Watcher™ is a Combat Initiative Tracker by Made to Order Software! Turn Watcher was created by gamers for gamers to help you run your combat rounds more smoothly and efficiently.

Turn Watcher keeps track of the combat order of each player character (PC) and monster involved in your encounters by tracking player and monster initiative order and current hit points so you don't have to!

Turn Watcher lets you make secret skill checks and will saves for player characters. It manages the PCs and monsters that have delayed or readied actions. And it handles automatic bleed out of dying PCs and monsters!

$14.99

Hacking, Good or Bad?

I already mentioned the American Government as being a target of many hackers.

You may also remember that in 1998, the Department of Defense was hacked by someone named Ehud Tenenbau. He was arrested at the time. He was still a teenager then.

Once back on the streets, he decided to wear a white hat and helped companies, many in Israel, to enhance their defenses. But that was only his day time job!

I guess that once you had a taste for a bad behavior, you just go on with it.