The ApplicationDomain class is a container for discrete groups of class definitions. Application domains are used to partition classes that are in the same security domain. They allow multiple definitions of the same class to exist and allow children to reuse parent definitions. Application domains are used when an external SWF file is loaded through the Loader class. All ActionScript 3.0 definitions in the loaded SWF file are stored in the application domain, which is specified by the applicationDomain property of the LoaderContext object that you pass as a context parameter of the Loader object's load() or loadBytes() method. The LoaderInfo object also contains an applicationDomain property, which is read-only.

All code in a SWF file is defined to exist in an application domain. The current application domain is where your main application runs. The system domain contains all application domains, including the current domain, which means that it contains all Flash Player classes.

Every application domain, except the system domain, has an associated parent domain. The parent domain of your main application's application domain is the system domain. Loaded classes are defined only when their parent doesn't already define them. You cannot override a loaded class definition with a newer definition.

For usage examples of application domains, see the ActionScript 3.0 Developer's Guide.

The ApplicationDomain() constructor function allows you to create an ApplicationDomain object.

Static variables

@:value(new ApplicationDomain(null))staticread onlycurrentDomain:ApplicationDomain = new ApplicationDomain(null)

Gets the current application domain in which your code is executing.

Constructor

@:value({ parentDomain : null })new(?parentDomain:ApplicationDomain)

Creates a new application domain.

Parameters:

parentDomain

If no parent domain is passed in, this application domain takes the system domain as its parent.

Variables

read onlyparentDomain:ApplicationDomain

Gets the parent domain of this application domain.

Methods

getDefinition(name:String):Class<Dynamic>

Gets a public definition from the specified application domain. The definition can be that of a class, a namespace, or a function.

Parameters:

name

The name of the definition.

Returns:

The object associated with the definition.

Throws:

ReferenceError

No public definition exists with the specified name.

hasDefinition(name:String):Bool

Checks to see if a public definition exists within the specified application domain. The definition can be that of a class, a namespace, or a function.

Parameters:

name

The name of the definition.

Returns:

A value of true if the specified definition exists; otherwise, false.