UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

406 lines (368 loc) 17.7 kB
import DisplayObject from "./DisplayObject"; import Loader from "./Loader"; import EventDispatcher from "./../events/EventDispatcher"; import UncaughtErrorEvents from "./../events/UncaughtErrorEvents"; import ApplicationDomain from "./../system/ApplicationDomain"; import ByteArray from "./../utils/ByteArray"; declare namespace openfl.display { /** * The LoaderInfo class provides information about a loaded SWF file or a * loaded image file(JPEG, GIF, or PNG). LoaderInfo objects are available for * any display object. The information provided includes load progress, the * URLs of the loader and loaded content, the number of bytes total for the * media, and the nominal height and width of the media. * * You can access LoaderInfo objects in two ways: * * * * The `contentLoaderInfo` property of a flash.display.Loader * object - The `contentLoaderInfo` property is always available * for any Loader object. For a Loader object that has not called the * `load()` or `loadBytes()` method, or that has not * sufficiently loaded, attempting to access many of the properties of the * `contentLoaderInfo` property throws an error. * * The `loaderInfo` property of a display object. * * * The `contentLoaderInfo` property of a Loader object provides * information about the content that the Loader object is loading, whereas * the `loaderInfo` property of a DisplayObject provides * information about the root SWF file for that display object. * * When you use a Loader object to load a display object(such as a SWF * file or a bitmap), the `loaderInfo` property of the display * object is the same as the `contentLoaderInfo` property of the * Loader object(`DisplayObject.loaderInfo = * Loader.contentLoaderInfo`). Because the instance of the main class of * the SWF file has no Loader object, the `loaderInfo` property is * the only way to access the LoaderInfo for the instance of the main class of * the SWF file. * * The following diagram shows the different uses of the LoaderInfo * object - for the instance of the main class of the SWF file, for the * `contentLoaderInfo` property of a Loader object, and for the * `loaderInfo` property of a loaded object: * * When a loading operation is not complete, some properties of the * `contentLoaderInfo` property of a Loader object are not * available. You can obtain some properties, such as * `bytesLoaded`, `bytesTotal`, `url`, * `loaderURL`, and `applicationDomain`. When the * `loaderInfo` object dispatches the `init` event, you * can access all properties of the `loaderInfo` object and the * loaded image or SWF file. * * **Note:** All properties of LoaderInfo objects are read-only. * * The `EventDispatcher.dispatchEvent()` method is not * applicable to LoaderInfo objects. If you call `dispatchEvent()` * on a LoaderInfo object, an IllegalOperationError exception is thrown. * * @:event complete Dispatched when data has loaded successfully. In other * words, it is dispatched when all the content has been * downloaded and the loading has finished. The * `complete` event is always dispatched after * the `init` event. The `init` event * is dispatched when the object is ready to access, though * the content may still be downloading. * @:event httpStatus Dispatched when a network request is made over HTTP and * an HTTP status code can be detected. * @:event init Dispatched when the properties and methods of a loaded * SWF file are accessible and ready for use. The content, * however, can still be downloading. A LoaderInfo object * dispatches the `init` event when the following * conditions exist: * * * All properties and methods associated with the * loaded object and those associated with the LoaderInfo * object are accessible. * * The constructors for all child objects have * completed. * * All ActionScript code in the first frame of the * loaded SWF's main timeline has been executed. * * * For example, an `Event.INIT` is dispatched * when the first frame of a movie or animation is loaded. * The movie is then accessible and can be added to the * display list. The complete movie, however, can take * longer to download. The `Event.COMPLETE` is * only dispatched once the full movie is loaded. * * The `init` event always precedes the * `complete` event. * @:event ioError Dispatched when an input or output error occurs that * causes a load operation to fail. * @:event open Dispatched when a load operation starts. * @:event progress Dispatched when data is received as the download * operation progresses. * @:event unload Dispatched by a LoaderInfo object whenever a loaded * object is removed by using the `unload()` * method of the Loader object, or when a second load is * performed by the same Loader object and the original * content is removed prior to the load beginning. */ export class LoaderInfo extends EventDispatcher { // #if flash // @:noCompletion @:dox(hide) public actionScriptVersion (default, null):flash.display.ActionScriptVersion; // #end /** * When an external SWF file is loaded, all ActionScript 3.0 definitions * contained in the loaded class are stored in the * `applicationDomain` property. * * 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 and all classes used by Flash Player or Adobe AIR. * * All application domains, except the system domain, have an associated * parent domain. The parent domain of your main application's * `applicationDomain` 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 "Client System * Environment" chapter in the _ActionScript 3.0 Developer's Guide_. * * @throws SecurityError This security sandbox of the caller is not allowed * to access this ApplicationDomain. */ public readonly applicationDomain:ApplicationDomain; /** * The bytes associated with a LoaderInfo object. * * @throws SecurityError If the object accessing this API is prevented from * accessing the loaded object due to security * restrictions. This situation can occur, for * instance, when a Loader object attempts to access * the `contentLoaderInfo.content` property * and it is not granted security permission to access * the loaded content. * * For more information related to security, see the * Flash Player Developer Center Topic: * [Security](http://www.adobe.com/go/devnet_security_en). */ public readonly bytes:ByteArray; /** * The number of bytes that are loaded for the media. When this number equals * the value of `bytesTotal`, all of the bytes are loaded. */ public readonly bytesLoaded:number; /** * The number of compressed bytes in the entire media file. * * Before the first `progress` event is dispatched by this * LoaderInfo object's corresponding Loader object, `bytesTotal` * is 0. After the first `progress` event from the Loader object, * `bytesTotal` reflects the actual number of bytes to be * downloaded. */ public readonly bytesTotal:number; /** * Expresses the trust relationship from content(child) to the Loader * (parent). If the child has allowed the parent access, `true`; * otherwise, `false`. This property is set to `true` * if the child object has called the `allowDomain()` method to * grant permission to the parent domain or if a URL policy is loaded at the * child domain that grants permission to the parent domain. If child and * parent are in the same domain, this property is set to `true`. * * For more information related to security, see the Flash Player * Developer Center Topic: [Security](http://www.adobe.com/go/devnet_security_en). * * @throws Error Thrown if the file is not downloaded sufficiently to * retrieve the requested information. */ public readonly childAllowsParent:boolean; // #if flash // @:noCompletion @:dox(hide) @:require(flash11_4) public childSandboxBridge:Dynamic; // #end /** * The loaded object associated with this LoaderInfo object. * * @throws SecurityError If the object accessing this API is prevented from * accessing the loaded object due to security * restrictions. This situation can occur, for * instance, when a Loader object attempts to access * the `contentLoaderInfo.content` property * and it is not granted security permission to access * the loaded content. * * For more information related to security, see the * Flash Player Developer Center Topic: * [Security](http://www.adobe.com/go/devnet_security_en). */ public readonly content:DisplayObject; /** * The MIME type of the loaded file. The value is `null` if not * enough of the file has loaded in order to determine the type. The * following list gives the possible values: * * * `"application/x-shockwave-flash"` * * `"image/jpeg"` * * `"image/gif"` * * `"image/png"` * */ public readonly contentType:string; /** * The nominal frame rate, in frames per second, of the loaded SWF file. This * number is often an integer, but need not be. * * This value may differ from the actual frame rate in use. Flash Player * or Adobe AIR only uses a single frame rate for all loaded SWF files at any * one time, and this frame rate is determined by the nominal frame rate of * the main SWF file. Also, the main frame rate may not be able to be * achieved, depending on hardware, sound synchronization, and other * factors. * * @throws Error If the file is not downloaded sufficiently to retrieve the * requested information. * @throws Error If the file is not a SWF file. */ public readonly frameRate:number; /** * The nominal height of the loaded file. This value might differ from the * actual height at which the content is displayed, since the loaded content * or its parent display objects might be scaled. * * @throws Error If the file is not downloaded sufficiently to retrieve the * requested information. */ public readonly height:number; // #if flash // @:noCompletion @:dox(hide) @:require(flash10_1) public isURLInaccessible (default, null):boolean; // #end /** * The Loader object associated with this LoaderInfo object. If this * LoaderInfo object is the `loaderInfo` property of the instance * of the main class of the SWF file, no Loader object is associated. * * @throws SecurityError If the object accessing this API is prevented from * accessing the Loader object because of security * restrictions. This can occur, for instance, when a * loaded SWF file attempts to access its * `loaderInfo.loader` property and it is * not granted security permission to access the * loading SWF file. * * For more information related to security, see the * Flash Player Developer Center Topic: * [Security](http://www.adobe.com/go/devnet_security_en). */ public readonly loader:Loader; /** * The URL of the SWF file that initiated the loading of the media described * by this LoaderInfo object. For the instance of the main class of the SWF * file, this URL is the same as the SWF file's own URL. */ public readonly loaderURL:string; /** * An object that contains name-value pairs that represent the parameters * provided to the loaded SWF file. * * You can use a `for-in` loop to extract all the names and * values from the `parameters` object. * * The two sources of parameters are: the query string in the URL of the * main SWF file, and the value of the `FlashVars` HTML parameter * (this affects only the main SWF file). * * The `parameters` property replaces the ActionScript 1.0 and * 2.0 technique of providing SWF file parameters as properties of the main * timeline. * * The value of the `parameters` property is null for Loader * objects that contain SWF files that use ActionScript 1.0 or 2.0. It is * only non-null for Loader objects that contain SWF files that use * ActionScript 3.0. */ public readonly parameters:any; /** * Expresses the trust relationship from Loader(parent) to the content * (child). If the parent has allowed the child access, `true`; * otherwise, `false`. This property is set to `true` * if the parent object called the `allowDomain()` method to grant * permission to the child domain or if a URL policy file is loaded at the * parent domain granting permission to the child domain. If child and parent * are in the same domain, this property is set to `true`. * * For more information related to security, see the Flash Player * Developer Center Topic: [Security](http://www.adobe.com/go/devnet_security_en). * * @throws Error Thrown if the file is not downloaded sufficiently to * retrieve the requested information. */ public readonly parentAllowsChild:boolean; // #if flash // @:noCompletion @:dox(hide) @:require(flash11_4) public parentSandboxBridge:Dynamic; // #end /** * Expresses the domain relationship between the loader and the content: * `true` if they have the same origin domain; `false` * otherwise. * * @throws Error Thrown if the file is not downloaded sufficiently to * retrieve the requested information. */ public readonly sameDomain:boolean; /** * An EventDispatcher instance that can be used to exchange events across * security boundaries. Even when the Loader object and the loaded content * originate from security domains that do not trust one another, both can * access `sharedEvents` and send and receive events via this * object. */ public readonly sharedEvents:EventDispatcher; // #if flash // @:noCompletion @:dox(hide) public swfVersion (default, null):UInt; // #end /** * An object that dispatches an `uncaughtError` event when an * unhandled error occurs in code in this LoaderInfo object's SWF file. An * uncaught error happens when an error is thrown outside of any * `try..catch` blocks or when an ErrorEvent object is dispatched * with no registered listeners. * * This property is created when the SWF associated with this LoaderInfo * has finished loading. Until then the `uncaughtErrorEvents` * property is `null`. In an ActionScript-only project, you can * access this property during or after the execution of the constructor * of the main class of the SWF file. For a Flex project, the * `uncaughtErrorEvents` property is available after the * `applicationComplete` event is dispatched. */ public readonly uncaughtErrorEvents:UncaughtErrorEvents; /** * The URL of the media being loaded. * * Before the first `progress` event is dispatched by this * LoaderInfo object's corresponding Loader object, the value of the * `url` property might reflect only the initial URL specified in * the call to the `load()` method of the Loader object. After the * first `progress` event, the `url` property reflects * the media's final URL, after any redirects and relative URLs are * resolved. * * In some cases, the value of the `url` property is truncated; * see the `isURLInaccessible` property for details. */ public readonly url:string; /** * The nominal width of the loaded content. This value might differ from the * actual width at which the content is displayed, since the loaded content * or its parent display objects might be scaled. * * @throws Error If the file is not downloaded sufficiently to retrieve the * requested information. */ public readonly width:number; // protected new (); // #if flash // @:noCompletion @:dox(hide) public static getLoaderInfoByDefinition (object:Dynamic):LoaderInfo; // #end } } export default openfl.display.LoaderInfo;