This specification describes version 0.2 of this document.
Copyright © 2005, 2006, 2007 Free Software Foundation
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this link or in the file COPYING-DOCS distributed with this manual.
Revision History | |
---|---|
Revision Free ActionScript Specification V0.2 | March 2007 |
Free Software Foundation |
Table of Contents
This is an Freely redistributable specifiction for Flash ActionScript maintained by the open source community of Flash developers.
ActionScript, like JavaScript, is based on the ECMA 262 Specification. The current version that fully supports this is ActionScript, and is implemented in the current Adobe Flash player version 9. Prior versions of the Flash player used ActionScript 2, which implemented a subset of the fully specification, plus differed some.
This class implements an Accessibility object.
Return whether a screen reader is in use.
Change the display to use a screen reader.
This class implements an array container.
Concatenates two objects and returns a new array.
Join all the array elements into a string.
Return the last element in the array by removing if from the array.
Push an element onto the end of the array.
Reverse the order of the elements in an array.
Return the first element in the array by removing if from the array.
Sort the elements in the array.
Sort the elements in the array based on one field.
Return a subset of the array elements as a new array.
Return the elements in an array as a string.
Place an element on the front of the array.
Class Name |
Conformance |
---|---|
concat() |
This method is implemented. |
join() |
This method is implemented. |
pop() |
This method is implemented. |
push() |
This method is implemented. |
reverse() |
This method is implemented. |
shift() |
This method is implemented. |
slice() |
This method is implemented. |
sort() |
This method is implemented. |
sortOn() |
This method is implemented. |
splice() |
This method is implemented. |
toString() |
This method is implemented. |
unshift() |
This method is implemented. |
length |
This property is implemented. |
This class implements a Boolean object, the primary purpose of which is to return a string representation of a Boolean value.
Concatenates two objects and returns a new Boolean.
Join all the Boolean elements into a string.
This class implements an Button object.
Class Name |
Conformance |
---|---|
getDepth() |
This method is implemented. |
_alpha |
This property is implemented. |
enabled |
This property has an unknown status. |
_focusrect |
This property is implemented. |
_height |
This property is implemented. |
_menu |
This property is unimplemented. |
_name |
This property is implemented. |
_parent |
This property is implemented. |
_quality |
This property is implemented. |
_rotation |
This property is implemented. |
_soundbuftime |
This property is implemented. |
_tabEnabled |
This property is unimplemented. |
_tabIndex |
This property is unimplemented. |
_target |
This property is implemented. |
_trackAsMenu |
This property is unimplemented. |
_url |
This property is implemented. |
_useHandCursor |
This property is unimplemented. |
_visible |
This property is implemented. |
_width |
This property is implemented. |
_x |
This property is implemented. |
_xmouse |
This property is implemented. |
_xscale |
This property is implemented. |
_y |
This property is implemented. |
_ymouse |
This property is implemented. |
_yscale |
This property is implemented. |
onDragOut |
This event handler is implemented. |
onDragOver |
This event handler is implemented. |
onKeyDown |
This event handler is implemented. |
onKeyUp |
This event handler is implemented. |
onKillFocus |
This event handler is not implemented. |
onPress |
This event handler is implemented. |
onRelease |
This event handler is implemented. |
onReleaseOutside |
This event handler is not implemented. |
onRollOut |
This event handler is not implemented. |
onRollOver |
This event handler is not implemented. |
onSetDocus |
This event handler is not implemented. |
This class implements an Camera object.
Class Name |
Conformance |
---|---|
get() |
This method is unimplemented. |
setMode() |
This method is unimplemented. |
setMotionLevel() |
This method is unimplemented. |
setQuality() |
This method is unimplemented. |
activityLevel |
This property is unimplemented. |
bandwidth |
This property is unimplemented. |
currentFps |
This property is unimplemented. |
fps |
This property is unimplemented. |
height |
This property is unimplemented. |
index |
This property is unimplemented. |
motionLevel |
This property is unimplemented. |
motionTimeOut |
This property is unimplemented. |
muted |
This property is unimplemented. |
name |
This property is unimplemented. |
names |
This property is unimplemented. |
onActivity |
This property is unimplemented. |
onStatus |
This property is unimplemented. |
quality |
This property is unimplemented. |
width |
This property is unimplemented. |
This class implements an Color object.
This class implements an ContextMenu object.
Returns an array of the built-in menu items.
An undefined array to contain menu item names.
Called before the menu is displayed.
This class implements an Math object.
Class Name |
Conformance |
---|---|
abs() |
This method is implemented. |
acos() |
This method is implemented. |
asin() |
This method is implemented. |
atan() |
This method is implemented. |
atan2() |
This method is implemented. |
ceil() |
This method is implemented. |
cos() |
This method is implemented. |
exp() |
This method is implemented. |
floor() |
This method is implemented. |
log() |
This method is implemented. |
max() |
This method is implemented. |
min() |
This method is implemented. |
pow() |
This method is implemented. |
random() |
This method is implemented. |
round() |
This method is implemented. |
sin() |
This method is implemented. |
sqrt() |
This method is implemented. |
tan() |
This method is implemented. |
E |
This property is implemented. |
LN2 |
This property is implemented. |
LN10 |
This property is implemented. |
LOG2E |
This property is implemented. |
LOG10E |
This property is implemented. |
PI |
This property is implemented. |
SQRT1_2 |
This property is implemented. |
SQRT2 |
This property is implemented. |
This class implements an NetConnection object. The NetConnection object opens a client connection to load an FLV video file from a local system, or a remote one using the RTMP or RTMPT protocols. RTMP connections use port 1935, and RTMPT connections use port 80.
This class was first introduced for swf v7 and the behavior has recently changed slightly to allow the loading of files from external systems. Prior to this, you were required to pass NULL to this class. Gnash handles both cases. The older behavior is default when connecting to the local filesystem for the file.
The URL that can be passed to connect() in newer versions of the swf format is as follows:
protocol:[//host][:port]/appname/[instanceName]
For protocol, specify either RTMP or RTMPT. If rtmp is specified, Flash Player will create a client connection. If RTMPT is specified, Flash Player will create an HTTP "tunneling" connection to the server.
You can omit the host parameter if the Flash movie is served from localhost. If the instanceName parameter is omitted, Flash Player connects to the application's default instance (_definst_).
Connect to a local or remote system to load a FLV file. Arg can be NULL, or a URL.
This class implements an Number object.
This class implements an String object.
Class Name |
Conformance |
---|---|
charAt() |
This method is implemented. |
charCodeAt() |
This method is implemented. |
concat() |
This method is not implemented. |
fromCharCode() |
This method is implemented. |
indexOf() |
This method is implemented. |
lastIndexOf() |
This method is not implemented. |
slice() |
This method is not implemented. |
split() |
This method is not implemented. |
substr() |
This method is not implemented. |
substring() |
This method is implemented. |
toLowerCase() |
The method is implemented. |
toUpperCase() |
This method is implemented. |
length |
This property is implemented. |
This class implements an CustomActions object.
This class implements the Date object.
Returns a Date's day-of-month from 1 to 31 according to local time.
Returns the day-of-the-week for a Date, according to local time, in the range 0-6 where 0 means Sunday and 6 means Saturday.
Returns the Gregorian year number for a Date, according to local time. Since Gnash currently uses POSIX date routines internally, this probably only works for dates from 13 Dec 1901 to 19 Jan 2038.
Returns the hour-of-the-day for a Date, according to local time, in the range 0-23.
Returns the milliseconds component of a Date as an integer in the range 0-999.
Returns the minutes-past-the-hour for a Date, according to local time, in the range 0-59.
Returns the month of the year for a Date, according to local time, in the range 0-11 where 0 means January and 11 means December.
Returns the seconds past the minute for a Date, in the range 0-59.
Returns the number of milliseconds elapsed since 1 Jan 1970 00:00:00 in Universal Coordinated Time, as a floating point number: fractions of milliseconds are included. Negative values indicate times before 1 Jan 1970.
Returns the difference between Universal Coordinated Time and the local time represented by a Date, including Daylight Savings Time if it was in effect at that time in the current locale. The return value is in minutes; negative for timezones east of Greenwich and positive for those west of Greenwich.
For example in the GMT+1 timezone, one hour east of Greenwich, for a time when DST was not in effect, the result would be -60. In the same timezone when DST is in effect, the extra hour in advance of UTC makes the value -120. Positive values are returned for locales west of Greenwich.
Returns a Date's day-of-month from 1 to 31, according to Universal Coordinated Time.
Returns the day-of-the-week for a Date, according to local time, in the range 0-6 where 0 means Sunday and 6 means Saturday.
Returns the Gregorian year number for a Date, according to Universal Coordinated Time. Since Gnash currently uses POSIX date routines internally, this probably only works for dates from 13 Dec 1901 to 19 Jan 2038.
Returns the hour-of-the-day for a Date, according to Universal Coordinated Time, in the range 0-23.
Returns the milliseconds component of a Date as an integer in the range 0-999.
Returns the minutes-past-the-hour for a Date, according to Universal Coordinated Time, in the range 0-59.
Returns the month of the year for a Date, according to Universal Coordinated Time, in the range 0-11 where 0 means January and 11 means December.
Returns the seconds past the minute for a Date, in the range 0-59.
Returns the number of Gregorian years elapsed between 1900 and a Date, according to local time.
For dates past 1st Jan 2000 it returns values from 100 onwards; for years before 1900 it returns negative values.
This function is a historical wart left over from the days when nobody could believe we would still be using Flash in 2000.
Sets the day-of-month for a Date object, in the range 1-31, leaving the year, month, and time-of-day unchanged for valid values.
If dayofmonth is greater than the number of days in the month in question, it wraps into the following month: for example, trying to set the 35th to a date in January will result in the 4th of February. If it is zero or negative, this will take the Date back to a previous month and possibly a previous year.
If there are no parameters to setDate, if dayofmonth is not of type Number (or a String that contains a decimal number or the Boolean values "true" and "false", which behave the same as 1 and 0) is an infinity or NotANumber, this sets the value of the Date object to "Not A Number", which is converted to a string as "Invalid date".
If a single parameter is given, this sets the Gregorian year number for a Date, normally leaving the month and day-of-month unchanged.
When changing from a leap year to a non-leap year when the date is set to 29th February, the resulting date is 1st March of the same year.
If month, and maybe dayofmonth, are also given, they simultaneously set the month (and day of month), following the usual rules whereby excessively large or negative values carry over to affect the month or year and still give a valid date.
If any supplied value cannot be converted to a valid number, the Date's value is set to NotANumber.
Sets the hour-of-the-day, normally in the range 0-23, leaving the calendar date and minutes/seconds unchanged.
Values greater than 23 will make the date roll over to one of the following days; negative values will result in previous dates. If no parameter is given, or if it is not of a type that can be converted to a number, the resulting date value is NotANumber, which prints as "Invalid date".
Sets the milliseconds with a resolution of one millisecond: fractional parts of a millisecond are ignored.
The parameter is normally a value from 0-999, but values outside this range will carry over into, or borrow from, the seconds (and minutes, hours etc if necessary).
If no parameters are given, or if the parameter cannot be converted to a number, the Date's value is set to NotANumber. Any extra parameters are ignored.
Sets the minutes-past-the-hour normally in the range 0-59, leaving the calendar date and hour/seconds unchanged.
"Minutes" greater than 59 carry over into the hours (and may consequently advance the date); simiarly, negative values borrow from them.
The optional second and third parameters simultaneously set the seconds and millisecond components, with similar carry/borrow if they are outside the ranges 0-59 and 0-999; fractions of seconds and milliseconds are ignored.
If no parameter is given, or if it is not of a type that can be converted to a number, the resulting date value is NotANumber, which prints as "Invalid date". Gnash differs from the commercial Flash player in this, which, given a non-numeric value for "minutes", returns a seemingly random date such as 9th December, 2077 BC.
Sets the month of the year, normally in the range 0-11, leaving the year and time of day (in localtime) unchanged.
Values greater than 11 will make the date roll over into a following year; negative values will result in previous years.
If only the month is given, the new month has less days that the old, and the day-of-month is beyond the end of the new month, the date wraps over into the first days of the month after the specified one. Gnash differs in this from the commercial player, which leaves the date set to the last day of the requested month.
If no parameter is given, or if it is not of a type that can be converted to a number, the month is set to January without changing the year.
If the optional extra parameter "day" is given, both the month and day-of-month are set. As usual, day numbers beyond the last day of the selected month wrap over into the following month(s), and negative values take us back to previous months and possibly years.
Unlike the "month" parameter, non-numeric values for "day" result in the Date's value being set to NotANumber.
Any further parameters are ignored.
Sets the seconds component of a Date. If the value of "seconds" is from 0-59, the hours and minutes will be unchanged.
An optional extra parameter can be used to simultanously set the milliseconds, though only to a precision of one millisecond: fractions of milliseconds can be given but are ignored). Likewise, any fractional part of a second is ignored.
As usual, values outside the range 0-999 for milliseconds are (added or subtracted) from the seconds, and values outside the range 0-59 for the seconds carry over into the minutes, hours etc.
Non-numerical values for "seconds" or "milliseconds" result in the Date's value being set to NotANumber.
Sets a Date object to a specified number of milliseconds since 1 Jan 1970 in Universal Coordinated Time. Fractions of milliseconds are ignored; the only way to set a a date to sub-millisecond accuracy is to use the single-argument version of the Date constructor.
If no parameters are supplied, or if the parameter cannot be converted to a number, the Date's value is set to NotANumber.
Is the same as setDate(), but specifying the time in Universal Coordinated Time.
Is the same as setFullYear(), but specifying the time in Universal Coordinated Time.
Is the same as setHours(), but specifying the time in Universal Coordinated Time.
Is the same as setMilliseconds().
Is the same as setMinutes(), but specifying the time in Universal Coordinated Time.
This differs from setMinutes in countries that have a time offset that is not a whole number of hours and on Lord Howe Island which also has daylight savings time of half an hour.
Is the same as setMonth(), but specifying the time in Universal Coordinated Time.
Is the same as setSeconds(),
Is the same as setFullYear(), except that values from 0 to 99 specify the years 1900 to 1999, and negative values specify a year prior to 1900. Thus the only way to specify the year 55AD with this method is to use -1845.
Converts a Date object to a printable string in the form "Thu Jan 1 00:00:00 GMT+0000 1970" in local time, according to the local timezone and whether Daylight Saving Time was in force at the time in question.
If the Date's value is NotANumber or Infinity, the string "Invalid Date" is returned.
Is a static function that converts the specified time, expressed in Universal Coordinated Time, to a Date value. It is most often used in conjunction with the Date constructor or the setTime method, to create a Date object according to UTC.
All parameters are 0-based except "month" which is 1-based, and the usual carry/borrow rules apply for oversized and negative values.
A missing day-of-month defaults to the first of the month; the other parameters default to zero.
If less than two paramemters are supplied, or if any supplied parameters cannot be converted to numeric values, the Date's value is set to NotANumber.
Class Name |
Conformance |
---|---|
getDate() |
Implemented. |
getDay() |
Implemented. |
getFullYear() |
Implemented. |
getHours() |
Implemented. |
getMilliseconds() |
Implemented. |
getMinutes() |
Implemented. |
getMonth() |
Implemented. |
getSeconds() |
Implemented. |
getTime() |
Implemented. |
getTimezoneOffset() |
Implemented. |
getUTCDate() |
Implemented. |
getUTCDay() |
Implemented. |
getUTCFullYear() |
Implemented. |
getUTCHours() |
Implemented. |
getUTCMilliseconds() |
Implemented. |
getUTCMinutes() |
Implemented. |
getUTCMonth() |
Implemented. |
getUTCSeconds() |
Implemented. |
getYear() |
Implemented. |
setDate() |
Implemented. |
setFullYear() |
Implemented. |
setHours() |
Implemented. |
setMilliseconds() |
Implemented. |
setMinutes() |
Implemented. The commercial player, given d.setMinutes(), leaves the date set to a random value such as 9th December 2077 BC. Gnash gives NotANumber, in the same way as all the other functions. |
setMonth() |
Implemented. |
setSeconds() |
Implemented. |
setTime() |
Implemented. |
setUTCDate() |
Implemented. |
setUTCFullYear() |
Implemented. |
setUTCHours() |
Implemented. |
setUTCMilliseconds() |
Implemented. |
setUTCMinutes() |
Implemented. See setMinutes above. |
setUTCMonth() |
Implemented. |
setUTCSeconds() |
Implemented. |
setYear() |
Implemented. |
toString() |
Implemented. |
UTC() |
Implemented. The commercial player, given Date.UTC(Infinity, 0), returns -6.77681005679712e+19; Gnash returns NAN if any parameter is non-numeric. |
This class implements an Error object.
Returns an error message as a string.
Returns the name of the error object.
This class implements an Function object.
This class implements an Key object.
Add a callback for key up and down events.
Return the ASCII value of the key.
Return the key code of the key.
Returns true if the specified key is down.
Returns true if the Num Lock key is on.
Remove the event handler.
A constant representing the backspace key.
A constant representing the Caps Lock key.
A constant representing the Control key.
A constant representing the Delete key.
A constant representing the Down arrow key.
A constant representing the End key.
A constant representing the Enter key.
A constant representing the Escape key.
A constant representing the Home key.
A constant representing the Insert key.
A constant representing the left arrow key.
A constant representing the Page Down key.
A constant representing the Page Up key.
A constant representing the right arrow key.
A constant representing the shift key.
A constant representing the space bar.
A constant representing the up arrow key.
Class Name |
Conformance |
---|---|
addListener() |
This method is implemented. |
getAscii() |
This method is implemented. |
getCode() |
This method is implemented. |
isDown() |
This method is implemented. |
isToggled() |
This method is implemented. |
removeListener() |
This method is implemented. |
BACKSPACE |
This constant is implemented. |
CAPSLOCK |
This constant is implemented. |
CONTROL |
This constant is implemented. |
DELETEKEY |
This constant is implemented. |
DOWN |
This constant is implemented. |
END |
This constant is implemented. |
ENTER |
This constant is implemented. |
ESCAPE |
This constant is implemented. |
HOME |
This constant is implemented. |
INSERT |
This constant is implemented. |
LEFT |
This constant is implemented. |
onKeyDown |
This constant is implemented. |
onKeyUp |
This constant is implemented. |
PGDN |
This constant is implemented. |
PGUP |
This constant is implemented. |
RIGHT |
This constant is implemented. |
SHIFT |
This constant is implemented. |
SPACE |
This constant is implemented. |
TAB |
This constant is implemented. |
UP |
This constant is implemented. |
This class implements an LoadVars object.
Class Name |
Conformance |
---|---|
addRequestHeader() |
This method is unimplemented. |
decode() |
This method is unimplemented. |
getBytesLoaded() |
This method is unimplemented. |
getBytesTotal() |
This method is unimplemented. |
load() |
This method is unimplemented. |
send() |
This method is unimplemented. |
sendAndLoad() |
This method is unimplemented. |
toString() |
This method is unimplemented. |
contentType |
This property is unimplemented. |
loaded |
This property is unimplemented. |
onData |
This property is unimplemented. |
onLoad |
This property is unimplemented. |
This class implements an LocalConnection object. This is basically a Flash version of the a standard RPC (Remote Procedure Call). This is used to have multiple flash movies exchange data without converting it to XML first. This class uses shared memory to transfer the data in the AMF format.
There is some documentation of the AMF format online, but not much. There appear to be a few free AMF projects, but none that I could find have any code. So I'm stuck developing a C/C++ based AMF library to transfer data.
Close the current open connection, and remove the shared memory segment.
This establishes a connection point so other movies can remotely execute methods in this movie. The shared memory segment is created in a form that can be attached to by a client. The code that actually remotely executes a method has yet to be written for Gnash.
This returns the network domain for this connection. The default is to return "localhost".
Execute a method of the local object. Data is encoded in the AMF format.
Called for every method being executed.
Called when a request is received over the network.
Returns the status of the method that was executed.
Class Name |
Conformance |
---|---|
close() |
This method is implemented. |
connect() |
This method is implemented. |
domain() |
This method is implemented. |
send() |
This method is unimplemented. |
allowDomain |
This property is unimplemented. |
allowInsecureDomain |
This property is unimplemented. |
onStatus |
This property is unimplemented. |
This class implements an Microphone object.
Class Name |
Conformance |
---|---|
get() |
This method is unimplemented. |
setGain() |
This method is unimplemented. |
setRate() |
This method is unimplemented. |
setSilenceLevel() |
This method is unimplemented. |
setUseEchoSuppression() |
This method is unimplemented. |
activityLevel |
This property is unimplemented. |
gain |
This property is unimplemented. |
index |
This property is unimplemented. |
muted |
This property is unimplemented. |
name |
This property is unimplemented. |
names |
This property is unimplemented. |
onActivity |
This property is unimplemented. |
onStatus |
This property has an unknown status. |
rate |
This property has an unknown status. |
silenceLevel |
This property has an unknown status. |
silenceTimeOut |
This property has an unknown status. |
useEchoSuppression |
This property has an unknown status. |
This class implements an Mouse object.
Class Name |
Conformance |
---|---|
addListener() |
This method is unimplemented. |
hide() |
This method is unimplemented. |
removeListener() |
This method is unimplemented. |
show() |
This method is unimplemented. |
onMouseDown |
This property is unimplemented. |
onMouseMove |
This property is unimplemented. |
onMouseUp |
This property is unimplemented. |
onMouseWheel |
This property is unimplemented. |
This class implements an MovieClip object.
Set fill color for subsequent drawing. The value is interpreted as a 32bit integer composed of red (highest byte), green, blue and alpha (lowest byte). If first argument is missing the fill color will be black with alpha 255.
Clear all dynamic drawing on this MovieClip.
Create an empty movieclip and place it in this clip displaylist at the given depth. Return a reference to the created clip. If called with less the two arguments the method returns undefined and no action is taken. TOCHECK: what if a character with the given name already exist ? TOCHECK: what if a character at the given depth already exist ?
Draw a quadratic bezier curve with current linestyle and current fill from current pen position to the anchor point ax,ay using control point cx, cy. If any argument is missing nothing is drawn. The function always returns undefined.
Make a clone of this MovieClip and place it in this MovieClip parent's DisplayList. If given a third argument, it will be taken as an object to use for initializing properties of the clone. Return the cloned object. An absolute root movieclip (_levelx) can not be duplicated, if attempted, no action is taken and undefined is returned. TOCHECK: what if a character with the given name already exists in parent's display list ? TOCHECK: what if a character at the given depth already exists in parent's display list ? TODO: add info about what does it mean to 'clone' (what's cloned and what not).
Reset any fill information. Next drawing calls will not be filled. If a fill was in effect (see beginFill and beginGradientFill) the current path is closed so that last point equals the first point of the filled shape.
Returns an object with members 'xMin', 'yMin', 'xMax' and 'yMax' representing the bounding box of this MovieClip. When called with no args the bounding box is in local coordinate space. When given an character as first argument, the bounding box is in the given character's coordinate space.
Return the depth on this character in its parent DisplayList. TOCHECK: what's returned when called against a character with no parent (_levelx) ?
Return the next available depth for placing a new character in this MovieClip displaylist. TOCHECK: if depths 1 and 3 are occupied, returns 4, not 2 , right ? NOTE: this function always return a number >= 0, negative depths are never returned.
TOCHECK : I don't think there's such a function ...
Take members 'x', and 'y' in the object 'obj' and transform them from global to local coordinate space. If the parameter doesn't cast to an object, or the object doesn't contain both 'x' and 'y', the call is invalid and nothing is modified.
In the first form, check for the bounding boxes of this and target characters to intersect. In the second and third form, check if the given point is inside the bounding box or the visible shape of this character; shapeFlag (false) in the 2 args version says wheter actual shape or just bounds has to be checked; coordinates values are in Stage coordinate space.
In the first form (no args) it will reset all line style info so that next drawing will have a transparent drawing. Note that by 'transparent' is not intended 0-alpha as no color transformation will be able to augment the alpha value. The line is simply always invisible instead.
In the second form, set thickness and color of strokes for subsequent drawing. If color is omitted, it defaults to black with 255 alpha. If thickness is zero the line will always be an 'hariline', which is always displaied with the same width at any scale. Other thickness will be in pixels and scale togheter with the MovieClip itself.
Draw a straight line from current position to point x,y using current styles.
Take members 'x', and 'y' in the object 'obj' and transform them from local to global coordinate space. If the parameter doesn't cast to an object, or the object doesn't contain both 'x' and 'y', the call is invalid and nothing is modified.
This is a read-write property of MovieClip objects. Changing the _name property of a MovieClip also changes it's _target and the _target of any child.
Dynamically-created clips are always created with a name, while for statically defined one this is optional in the SWF, but will be syntetized by the player if missing. TODO: check if _name reflects the syntetized naming (_instancex). For the root movie syntetization doesn't happen and the _name property is the empty string for SWF6 and higher or null for SWF5 and lower.
Valid values for _name are: ....
NOTE: mm player7 and player9 differ on typeof(_root._name) on startup.
Class Name |
Conformance |
---|---|
attachAudio() |
This method has an unknown status. |
attachMovie() |
This method has an unknown status. |
beginFill() |
Implemented and tested. |
beginGradientFill() |
This method has an unknown status. |
clear() |
Implemented and tested. |
createEmptyMovieClip() |
Implemented and tested. Needs more tests for corner cases (ie: depth occupied or name existing). |
createTextField() |
This method has an unknown status. |
curveTo() |
Implemented and tested. |
duplicateMovieClip() |
Implemented and tested. Needs more testing. |
endFill() |
Implemented and tested. |
getBounds() |
Implemented and tested. |
getBytesLoaded() |
This method has an unknown status. |
getBytesTotal() |
This method has an unknown status. |
getDepth() |
Implemented and tested. |
getInstanceAtDepth() |
This method has an unknown status. |
getNextHighestDepth() |
Implemented and tested. Needs more tests. |
getSWFVersion() |
This method has an unknown status. |
getTextSnapshot() |
This method has an unknown status. |
getURL() |
This method has an unknown status. |
globalToLocal() |
Implemented and tested in Gnash. |
gotoAndPlay() |
This method has an unknown status. |
gotoAndStop() |
This method has an unknown status. |
hitTest() |
Implemented and tested in Gnash. |
lineStyle() |
Implemented and tested. |
lineTo() |
Implemented and tested. |
loadMovie() |
This method has an unknown status. |
loadVariables() |
This method has an unknown status. |
localToGlobal() |
Implemented and tested in Gnash. |
moveTo() |
This method has an unknown status. |
nextFrame() |
This method has an unknown status. |
play() |
This method has an unknown status. |
prevFrame() |
This method has an unknown status. |
removeMovieClip() |
This method has an unknown status. |
setMask() |
This method has an unknown status. |
startDrag() |
This method has an unknown status. |
stop() |
This method has an unknown status. |
stopDrag() |
This method has an unknown status. |
swapDepths() |
This method has an unknown status. |
unloadMovie() |
This method has an unknown status. |
_alpha |
This property has an unknown status. |
_currentframe |
This property has an unknown status. |
_droptarget |
This property has an unknown status. |
enabled |
This property has an unknown status. |
focusEnabled |
This property has an unknown status. |
_focusrect |
This property has an unknown status. |
_framesloaded |
This property has an unknown status. |
_height |
This property has an unknown status. |
hitArea |
This property has an unknown status. |
_lockroot |
This property has an unknown status. |
menu |
This property has an unknown status. |
_name |
This property has an unknown status. |
onData |
This property has an unknown status. |
onDragOut |
This property has an unknown status. |
onDragOver |
This property has an unknown status. |
onEnterFrame |
This property has an unknown status. |
onKeyDown |
This property has an unknown status. |
onKeyUp |
This property has an unknown status. |
onKillFocus |
This property has an unknown status. |
onLoad |
This property has an unknown status. |
onMouseDown |
This property has an unknown status. |
onMouseMove |
This property has an unknown status. |
onMouseUp |
This property has an unknown status. |
onPress |
This property has an unknown status. |
onRelease |
This property has an unknown status. |
onReleaseOutside |
This property has an unknown status. |
onRollOut |
This property has an unknown status. |
onRollOver |
This property has an unknown status. |
onSetFocus |
This property has an unknown status. |
onUnload |
This property has an unknown status. |
_parent |
This property has an unknown status. |
_quality |
This property has an unknown status. |
_rotation |
This property has an unknown status. |
_soundbuftime |
This property has an unknown status. |
tabChildren |
This property has an unknown status. |
tabEnabled |
This property has an unknown status. |
tabIndex |
This property has an unknown status. |
_target |
This property has an unknown status. |
_totalframes |
This property has an unknown status. |
trackAsMenu |
This property has an unknown status. |
_url |
This property has an unknown status. |
useHandCursor |
This property has an unknown status. |
_visible |
This property has an unknown status. |
_width |
This property has an unknown status. |
_x |
This property has an unknown status. |
_xmouse |
This property has an unknown status. |
_xscale |
This property has an unknown status. |
_y |
This property has an unknown status. |
_ymouse |
This property has an unknown status. |
_yscale |
This property has an unknown status. |
This class implements an MovieClipLoader object.
Class Name |
Conformance |
---|---|
addListener() |
This method has an unknown status. |
getProgress() |
This method has an unknown status. |
loadClip() |
This method has an unknown status. |
removeListener() |
This method has an unknown status. |
unloadClip() |
This method has an unknown status. |
onLoadComplete |
This property has an unknown status. |
onLoadError |
This property has an unknown status. |
onLoadInit |
This property has an unknown status. |
onLoadProgress |
This property has an unknown status. |
onLoadStart |
This property has an unknown status. |
This class implements an NetStream object.
Class Name |
Conformance |
---|---|
close() |
This method is unimplemented. |
pause() |
This method is unimplemented. |
play() |
This method is unimplemented. |
seek() |
This method is unimplemented. |
setBufferTime() |
This method is unimplemented. |
bufferLength |
This property is unimplemented. |
bufferTime |
This property is unimplemented. |
bytesLoaded |
This property is unimplemented. |
bytesTotal |
This property is unimplemented. |
currentFps |
This property is unimplemented. |
onStatus |
This property is unimplemented. |
time |
This property is unimplemented. |
This class implements an Selection object.
Class Name |
Conformance |
---|---|
addListener() |
This method is unimplemented. |
getBeginIndex() |
This method is unimplemented. |
getCaretIndex() |
This method is unimplemented. |
getEndIndex() |
This method is unimplemented. |
getFocus() |
This method is unimplemented. |
removeListener() |
This method is unimplemented. |
setFocus() |
This method is unimplemented. |
setSelection() |
This method is unimplemented. |
onSetFocus |
This property is unimplemented. |
This class implements an SharedObject object.
This class implements an Sound object.
Attach the specified sound.
Returns how many bytes of the sound have been loaded.
Returns the total size of the sound.
Returns the value of the previous call to setPan().
Returns the value of the previous call to setTransform().
Returns the value of the previous call to setVolumne().
Load an MP3 file.
Change the balance.
Set the channel amounts for each speaker.
Set the volume for playing.
Play the loaded sound.
Stop playing the sound.
The length in milliseconds of the sound.
Returns the ID3 tag of an MP3 file.
Returns the amount of time the sound has been playing.
Called when ID3 data is available.
Called when a sound is loaded.
Called when a sound is done playing.
Class Name |
Conformance |
---|---|
attachSound() |
This method is implemented. |
getBytesLoaded() |
This method has an unknown status. |
getBytesTotal() |
This method has an unknown status. |
getPan() |
This method is unimplemented. |
getTransform() |
This method has an unknown status. |
getVolume() |
This method is unimplemented. |
loadSound() |
This method is unimplemented. |
setPan() |
This method is unimplemented. |
setTransform() |
This method is unimplemented. |
setVolume() |
This method is unimplemented. |
start() |
This method is implemented. |
stop() |
This method is implemented. |
duration |
This property has an unknown status. |
id3 |
This property is unimplemented. |
onID3 |
This event handler is unimplemented. |
onLoad |
This event handler is unimplemented. |
onSoundComplete |
This event handler is unimplemented. |
position |
This property is implemented. |
This class implements an Stage object.
Class Name |
Conformance |
---|---|
addListener() |
This method is unimplemented. |
removeListener() |
This method is unimplemented. |
align |
This property is unimplemented. |
height |
This property is unimplemented. |
onResize |
This property is unimplemented. |
scaleMode |
This property is unimplemented. |
showMenu |
This property is unimplemented. |
width |
This property is unimplemented. |
This class implements an System object.
Class Name |
Conformance |
---|---|
security.allowDomain() |
This method has an unknown status. |
security.allowInsecureDomain() |
This method has an unknown status. |
security.loadPolicyFile() |
This method has an unknown status. |
setClipboard() |
This method has an unknown status. |
showSettings() |
This method has an unknown status. |
capabilities |
This property has an unknown status. |
object |
This property has an unknown status. |
capabilities.avHardwareDisable |
This property has an unknown status. |
capabilities.hasAccessibility |
This property has an unknown status. |
capabilities.hasAudio |
This property has an unknown status. |
capabilities.hasAudioEncoder |
This property has an unknown status. |
capabilities.hasEmbeddedVideo |
This property has an unknown status. |
capabilities.hasMP3 |
This property has an unknown status. |
capabilities.hasPrinting |
This property has an unknown status. |
capabilities.hasScreenBroadcast |
This property has an unknown status. |
capabilities.hasScreenPlayback |
This property has an unknown status. |
capabilities.hasStreamingAudio |
This property has an unknown status. |
capabilities.hasStreamingVideo |
This property has an unknown status. |
capabilities.hasVideoEncoder |
This property has an unknown status. |
capabilities.isDebugger |
This property has an unknown status. |
capabilities.language |
This property has an unknown status. |
capabilities.localFileReadDisable |
This property has an unknown status. |
capabilities.manufacturer |
This property has an unknown status. |
capabilities.os |
This property has an unknown status. |
capabilities.pixelAspectRatio |
This property has an unknown status. |
capabilities.playerType |
This property has an unknown status. |
capabilities.screenColor |
This property has an unknown status. |
capabilities.screenDPI |
This property has an unknown status. |
capabilities.screenResolutionX |
This property has an unknown status. |
capabilities.screenResolutionY |
This property has an unknown status. |
capabilities.serverString |
This property has an unknown status. |
capabilities.version |
This property has an unknown status. |
security |
This property has an unknown status. |
object |
This property has an unknown status. |
exactSettings |
This property has an unknown status. |
onStatus |
This property has an unknown status. |
useCodepage |
This property has an unknown status. |
This class implements an TextField object.
Class Name |
Conformance |
---|---|
StyleSheet.clear() |
This method has an unknown status. |
StyleSheet.getStyle() |
This method has an unknown status. |
StyleSheet.getStyleNames() |
This method has an unknown status. |
StyleSheet.load() |
This method has an unknown status. |
StyleSheet.parseCSS() |
This method has an unknown status. |
StyleSheet.setStyle() |
This method has an unknown status. |
StyleSheet.transform() |
This method has an unknown status. |
addListener() |
This method has an unknown status. |
getDepth() |
This method has an unknown status. |
getFontList() |
This method has an unknown status. |
getNewTextFormat() |
This method has an unknown status. |
getTextFormat() |
This method has an unknown status. |
removeListener() |
This method has an unknown status. |
removeTextField() |
This method has an unknown status. |
replaceSel() |
This method has an unknown status. |
replaceText() |
This method has an unknown status. |
setNewTextFormat() |
This method has an unknown status. |
setTextFormat() |
This method has an unknown status. |
StyleSheet |
This property has an unknown status. |
class |
This property has an unknown status. |
StyleSheet.onLoad |
This property has an unknown status. |
_alpha |
This property has an unknown status. |
autoSize |
This property has an unknown status. |
background |
This property has an unknown status. |
backgroundColor |
This property has an unknown status. |
border |
This property has an unknown status. |
borderColor |
This property has an unknown status. |
bottomScroll |
This property has an unknown status. |
condenseWhite |
This property has an unknown status. |
embedFonts |
This property has an unknown status. |
_height |
This property has an unknown status. |
hscroll |
This property has an unknown status. |
html |
This property has an unknown status. |
htmlText |
This property has an unknown status. |
length |
This property has an unknown status. |
maxChars |
This property has an unknown status. |
maxhscroll |
This property has an unknown status. |
maxscroll |
This property has an unknown status. |
menu |
This property has an unknown status. |
mouseWheelEnabled |
This property has an unknown status. |
multiline |
This property has an unknown status. |
_name |
This property has an unknown status. |
onChanged |
This property has an unknown status. |
onKillFocus |
This property has an unknown status. |
onScroller |
This property has an unknown status. |
onSetFocus |
This property has an unknown status. |
_parent |
This property has an unknown status. |
password |
This property has an unknown status. |
_quality |
This property has an unknown status. |
restrict |
This property has an unknown status. |
_rotation |
This property has an unknown status. |
scroll |
This property has an unknown status. |
selectable |
This property has an unknown status. |
styleSheet |
This property has an unknown status. |
tabEnabled |
This property has an unknown status. |
tabIndex |
This property has an unknown status. |
_target |
This property has an unknown status. |
text |
This property has an unknown status. |
textColor |
This property has an unknown status. |
textHeight |
This property has an unknown status. |
textWidth |
This property has an unknown status. |
type |
This property has an unknown status. |
_url |
This property has an unknown status. |
variable |
This property has an unknown status. |
_visible |
This property has an unknown status. |
_width |
This property has an unknown status. |
wordWrap |
This property has an unknown status. |
_x |
This property has an unknown status. |
_xmouse |
This property has an unknown status. |
_xscale |
This property has an unknown status. |
_y |
This property has an unknown status. |
_ymouse |
This property has an unknown status. |
_yscale |
This property has an unknown status. |
This class implements an TextFormat object.
Class Name |
Conformance |
---|---|
getTextExtent() |
This method has an unknown status. |
align |
This property has an unknown status. |
blockIndent |
This property has an unknown status. |
bold |
This property has an unknown status. |
bullet |
This property has an unknown status. |
color |
This property has an unknown status. |
font |
This property has an unknown status. |
indent |
This property has an unknown status. |
italic |
This property has an unknown status. |
leadingxmlsocket.xml |
This property has an unknown status. |
leftMargin |
This property has an unknown status. |
rightMargin |
This property has an unknown status. |
size |
This property has an unknown status. |
tabStops |
This property has an unknown status. |
target |
This property has an unknown status. |
underline |
This property has an unknown status. |
url |
This property has an unknown status. |
This class implements an TextSnapshot object.
Class Name |
Conformance |
---|---|
findText() |
This method is unimplemented. |
getCount() |
This method is unimplemented. |
getSelected() |
This method is unimplemented. |
getSelectedText() |
This method is unimplemented. |
getText() |
This method is unimplemented. |
hitTestTextNearPos() |
This method has an unknown status. |
setSelectColor() |
This method has an unknown status. |
setSelected() |
This method has an unknown status. |
This class implements an Video object.
This class implements an XMLNode object. This is mostly only used internally by Gnash for holding the data for a node. It does exist within the interpreter as a valid object though, so its properties and methods can be accessed by a flash movie script.
As the XML class is derived from this one, many of these methods are the same as for that class.
Append a child node to this node.
Copy a node, returning an XMLNode *.
Return true if this node has any children.
Insert a node before this node.
Remove a node from the parent's list.
Convert the node and its children to a string representation.
Returns an array of the attributes of a node.
Returns an array of the children of a node.
Returns the first child node.
Returns the next child node.
Returns the child node before this one.
Returns the name of the node.
Returns the type of a node.
Contains the text for a text node type.
Returns this node's parent.
Class Name |
Conformance |
---|---|
appendChild() |
This method is implemented. |
cloneNode() |
This method is implemented. |
hasChildNodes() |
This method is implemented. |
insertBefore() |
This method is unimplemented. |
removeNode() |
This method is unimplemented. |
toString() |
This method is unimplemented. |
attributes |
This property is unimplemented. |
childNodes |
This property is unimplemented. |
firstChild |
This property is implemented. |
lastChild |
This property is implemented. |
nextSibling |
This property is implemented. |
previousSibling |
This property is implemented. |
nodeName |
This property is implemented. |
nodeType |
This property is implemented. |
nodeValue |
This property is implemented. |
parentNode |
This property is unimplemented. |
This class implements an XML object.
Change the HTTP header.
Append a child node to this node.
Copy a node.
Create an element for a node.
Create a text node.
Return the size of the XML source.
Return if this node has any children.
Insert a node before this node.
Load a XML message in memory.
Parse an XML document.
Remove a node.
Send the node through the network.
Send a node, and get the result using the network.
Convert the node and its children to a string.
The MIME type.
Returns an array of the attributes of a node.
Returns an array of the children of a node.
Specify document's declaration.
Get a string version of a document's declaration.
Returns the first child node.
If set, blank nodes are deleted.
A flag that signifies if a file was loaded.
Returns the next child node.
Returns the name of the node.
Returns the type of a node.
Contains the text for a text node type.
Returns this node's parent.
Returns the status code from parsing the XML document.
Returns the child node before this one.
Class Name |
Conformance |
---|---|
addRequestHeader() |
This method is unimplemented. |
appendChild() |
This method is unimplemented. |
cloneNode() |
This method is unimplemented. |
createElement() |
This method is unimplemented. |
createTextNode() |
This method is unimplemented. |
getBytesLoaded() |
This method is unimplemented. |
getBytesTotal() |
This method is unimplemented. |
hasChildNodes() |
This method is implemented. |
insertBefore() |
This method is unimplemented. |
load() |
This method is implemented. |
parseXML() |
This method is implemented. |
removeNode() |
This method is unimplemented. |
send() |
This method is unimplemented. |
sendAndLoad() |
This method is unimplemented. |
toString() |
This method is unimplemented. |
contentType |
This property is unimplemented. |
attributes |
This property is implemented. |
childNodes |
This property is implemented. |
xmlDecl |
This property is unimplemented. |
docTypeDecl |
This property is unimplemented. |
firstChild |
This property is implemented. |
ignoreWhite |
This property is unimplemented. |
lastChild |
This property is unimplemented. |
loaded |
This property is implemented. |
nextSibling |
This property is unimplemented. |
nodeName |
This property is unimplemented. |
nodeType |
This property is implemented. |
nodeValue |
This property is unimplemented. |
onData |
This event handler is implemented. |
onLoad |
This event handler is implemented. |
parentNode |
This event handler is implemented. |
status |
This event handler is unimplemented. |
previousSibling |
This event handler is unimplemented. |
This class implements an XMLSocket object.
Close the socket connection.
Connect to a host over a network connection.
Send a message through a network connection.
Called when a network connection is closed.
Called when a network connect has connected.
Called then there is a message from the network.
Called when an XML message is received.
Class Name |
Conformance |
---|---|
close() |
This method is implemented. |
connect() |
This method is implemented. |
send() |
This method is implemented. |
onClose |
This event handler is unimplemented. |
onConnect |
This event handler is implemented. |
onData |
This event handler is implemented. |
onXML |
This event handler is implemented. |
This Free ActionScript Specification is
maintained by the Gnash team and others. Please send all
comments to <gnash-dev@gnu.org>
.
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or non-commercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).
C. State on the Title Page the name of the publisher of the Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.
N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version .
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document , on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".
If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.