ActionScript 3.0 Language Specification
1 Tutorial introduction
1.1 Hello world
1.2 Expressions
1.3 Statements
1.4 Variables
1.5 Functions
1.6 Classes
1.7 Interfaces
1.8 Packages
1.9 Namespaces
2 Design perspective
2.1 Compatibility with existing programs
2.2 Compatibility with existing object models
2.3 Controlling the visibility of names
2.4 Choosing between reliability and flexibility
3 Phases and dialects of interpretation
3.1 Parsing
3.2 Verifying
3.2.1 Compile time constant expressions
3.3 Evaluating
3.4 Strict verification
3.4.1 Type errors
3.4.2 Strict errors
4 Definitions
4.1 Bound method
4.2 Class
4.3 Class method
4.4 Class variable
4.5 Delegate
4.6 Final
4.7 Function
4.8 Function Closure
4.9 Instance
4.10 Instance method
4.11 Instance variable
4.12 Method
4.13 Object
4.14 Property
4.15 Prototype
4.16 Sealed
4.17 Slots
4.18 Trait
5 Names
5.1 Definition names
5.2 Reference names
5.3 Name lookup
5.3.1 Object references
5.3.2 Lexical references
6 Types
6.1 Type operators
6.1.1 Operator is
6.1.2 Operator as
6.2 Type Conversions
6.3 Type annotations
6.4 Runtime versus compile time type
6.5 Untyped versus typed properties
6.6 Object types
6.7 Class types
6.8 Interface types
6.9 Strict dialect and static types
7 Variables
7.1 Variable modifiers
7.2 Variable types
8 Functions
8.1 Function modifiers
8.2 Function signatures
8.3 Function objects
9 Classes
9.1 Class modifiers
9.2 Class objects
9.2.1 Prototypes
9.2.2 Traits
9.2.3 Methods
9.2.4 Slots
9.2.5 Instances
9.2.6 Inheritance
9.2.7 Scopes
9.3 Class property attributes
9.3.1 Static attribute
9.3.2 Prototype attribute
9.3.3 Access control namespace attributes
9.3.4 User-defined namespace attributes
9.4 Class body
9.5 Class variables
9.5.1 Static variables
9.5.2 Instance variables
9.6 Class methods
9.6.1 Constructor methods
9.6.2 Static methods
9.6.3 Instance methods
9.6.4 Accessor methods
9.6.5 Inheriting instance methods
9.6.6 Bound methods
10 Interfaces
10.1 Interface types
10.2 Interface methods
10.2.1 Visibility of interface methods
10.2.2 Inheritance of interface methods
10.3 Interface example
11 Packages
11.1 Package namespace
11.2 Package members
11.2.1 Package property attributes
11.3 Package import
11.3.1 Single name aliases
11.4 Unnamed package
12 Namespaces
12.1 Namespace values
12.2 Namespaces as attributes
12.3 Namespaces as qualifiers
12.4 Open namespaces
12.5 Namespace examples
12.5.1 Access control
12.5.2 Version control
12.5.3 Vocabulary control
13 Lexical Structure
13.1 Lexical
13.2 Syntactic
14 Expressions
14.1 Identifiers
14.2 Primary expressions
14.3 Reserved namespace expressions
14.4 Parenthesized expressions
14.5 Function expression
14.6 Object initialiser
14.7 Array initialiser
14.8 XML initialisers
14.9 Super expression
14.10 Postfix Expressions
14.11 New expressions
14.12 Property accessors
14.13 Query operators
14.14 Call expressions
14.15 Unary expressions
14.16 Binary expressions
14.16.1 Multiplicative expressions
14.16.2 Additive expressions
14.16.3 Shift expressions
14.16.4 Relational expressions
14.16.5 Equality expressions
14.16.6 Bitwise expressions
14.16.7 Logical expressions
14.17 Conditional expressions
14.18 Non-assignment expressions
14.19 Assignment expressions
14.20 List expressions
14.21 Type expressions
15 Statements
15.1 Empty statement
15.2 Expression statement
15.3 Super statement
15.4 Block statement
15.5 Labeled statement
15.6 Conditional statements
15.6.1 If statement
15.6.2 Switch statement
15.7 Iteration statements
15.7.1 Do-while statement
15.17.2 While statement
15.7.3 For statements
15.8 Continue statement
15.9 Break statement
15.10 With statement
15.11 Return statement
15.12 Throw statement
15.13 Try statement
15.14 Default XML namespace statement
16 Directives
16.1 Attributes
16.2 Import directive
16.3 Include directive
16.4 Use directive
17 Definitions
17.1 Variable definition
17.2 Function definition
17.2.1 Function body
17.2.2 Function signature
17.2.3 Parameter list
17.2.4 Result type
17.3 Class definition
17.3.1 Class attributes
17.3.2 Class name
17.3.3 Class inheritance
17.3.4 Class block
17.4 Interface definition
17.4.1 Interface attributes
17.4.2 Interface name
17.4.3 Interface inheritance
17.4.4 Interface block
17.5 Package definition
17.5.1 Package name
17.6 Namespace definition
17.7 Program definition
18 Errors
18.1 Class errors
18.2 Interface errors
18.3 Package errors
18.4 Namespace errors
19 Native objects
19.1 Global object
19.2 Object objects
19.3 Function objects
19.4 Array objects
19.5 String objects
19.6 Boolean objects
19.7 Number objects
19.8 Math object
19.9 Date objects
19.10 Error objects
20 Compatibility with the static profile
21 Compatibility with ECMAScript edition 3
21.1 this inside of nested function
21.2 No boxing of primitives
21.3 Assignment to const is a runtime exception
21.4 Class names are const
21.5 Array arguments object
22 Compatibility with E4X
ActionScript 3.0 Language Specification
1 Tutorial introduction
1.1 Hello world
1.2 Expressions
1.3 Statements
1.4 Variables
1.5 Functions
1.6 Classes
1.7 Interfaces
1.8 Packages
1.9 Namespaces
2 Design perspective
2.1 Compatibility with existing programs
2.2 Compatibility with existing object models
2.3 Controlling the visibility of names
2.4 Choosing between reliability and flexibility
3 Phases and dialects of interpretation
3.1 Parsing
3.2 Verifying
3.2.1 Compile time constant expressions
3.3 Evaluating
3.4 Strict verification
3.4.1 Type errors
3.4.2 Strict errors
4 Definitions
4.1 Bound method
4.2 Class
4.3 Class method
4.4 Class variable
4.5 Delegate
4.6 Final
4.7 Function
4.8 Function Closure
4.9 Instance
4.10 Instance method
4.11 Instance variable
4.12 Method
4.13 Object
4.14 Property
4.15 Prototype
4.16 Sealed
4.17 Slots
4.18 Trait
5 Names
5.1 Definition names
5.2 Reference names
5.3 Name lookup
5.3.1 Object references
5.3.2 Lexical references
6 Types
6.1 Type operators
6.1.1 Operator is
6.1.2 Operator as
6.2 Type Conversions
6.3 Type annotations
6.4 Runtime versus compile time type
6.5 Untyped versus typed properties
6.6 Object types
6.7 Class types
6.8 Interface types
6.9 Strict dialect and static types
7 Variables
7.1 Variable modifiers
7.2 Variable types
8 Functions
8.1 Function modifiers
8.2 Function signatures
8.3 Function objects
9 Classes
9.1 Class modifiers
9.2 Class objects
9.2.1 Prototypes
9.2.2 Traits
9.2.3 Methods
9.2.4 Slots
9.2.5 Instances
9.2.6 Inheritance
9.2.7 Scopes
9.3 Class property attributes
9.3.1 Static attribute
9.3.2 Prototype attribute
9.3.3 Access control namespace attributes
9.3.4 User-defined namespace attributes
9.4 Class body
9.5 Class variables
9.5.1 Static variables
9.5.2 Instance variables
9.6 Class methods
9.6.1 Constructor methods
9.6.2 Static methods
9.6.3 Instance methods
9.6.4 Accessor methods
9.6.5 Inheriting instance methods
9.6.6 Bound methods
10 Interfaces
10.1 Interface types
10.2 Interface methods
10.2.1 Visibility of interface methods
10.2.2 Inheritance of interface methods
10.3 Interface example
11 Packages
11.1 Package namespace
11.2 Package members
11.2.1 Package property attributes
11.3 Package import
11.3.1 Single name aliases
11.4 Unnamed package
12 Namespaces
12.1 Namespace values
12.2 Namespaces as attributes
12.3 Namespaces as qualifiers
12.4 Open namespaces
12.5 Namespace examples
12.5.1 Access control
12.5.2 Version control
12.5.3 Vocabulary control
13 Lexical Structure
13.1 Lexical
13.2 Syntactic
14 Expressions
14.1 Identifiers
14.2 Primary expressions
14.3 Reserved namespace expressions
14.4 Parenthesized expressions
14.5 Function expression
14.6 Object initialiser
14.7 Array initialiser
14.8 XML initialisers
14.9 Super expression
14.10 Postfix Expressions
14.11 New expressions
14.12 Property accessors
14.13 Query operators
14.14 Call expressions
14.15 Unary expressions
14.16 Binary expressions
14.16.1 Multiplicative expressions
14.16.2 Additive expressions
14.16.3 Shift expressions
14.16.4 Relational expressions
14.16.5 Equality expressions
14.16.6 Bitwise expressions
14.16.7 Logical expressions
14.17 Conditional expressions
14.18 Non-assignment expressions
14.19 Assignment expressions
14.20 List expressions
14.21 Type expressions
15 Statements
15.1 Empty statement
15.2 Expression statement
15.3 Super statement
15.4 Block statement
15.5 Labeled statement
15.6 Conditional statements
15.6.1 If statement
15.6.2 Switch statement
15.7 Iteration statements
15.7.1 Do-while statement
15.17.2 While statement
15.7.3 For statements
15.8 Continue statement
15.9 Break statement
15.10 With statement
15.11 Return statement
15.12 Throw statement
15.13 Try statement
15.14 Default XML namespace statement
16 Directives
16.1 Attributes
16.2 Import directive
16.3 Include directive
16.4 Use directive
17 Definitions
17.1 Variable definition
17.2 Function definition
17.2.1 Function body
17.2.2 Function signature
17.2.3 Parameter list
17.2.4 Result type
17.3 Class definition
17.3.1 Class attributes
17.3.2 Class name
17.3.3 Class inheritance
17.3.4 Class block
17.4 Interface definition
17.4.1 Interface attributes
17.4.2 Interface name
17.4.3 Interface inheritance
17.4.4 Interface block
17.5 Package definition
17.5.1 Package name
17.6 Namespace definition
17.7 Program definition
18 Errors
18.1 Class errors
18.2 Interface errors
18.3 Package errors
18.4 Namespace errors
19 Native objects
19.1 Global object
19.2 Object objects
19.3 Function objects
19.4 Array objects
19.5 String objects
19.6 Boolean objects
19.7 Number objects
19.8 Math object
19.9 Date objects
19.10 Error objects
20 Compatibility with the static profile
21 Compatibility with ECMAScript edition 3
21.1 this inside of nested function
21.2 No boxing of primitives
21.3 Assignment to const is a runtime exception
21.4 Class names are const
21.5 Array arguments object
22 Compatibility with E4X