UNPKG

starling-framework

Version:

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

66 lines 3.21 kB
import AssetReference from "./AssetReference"; import AssetFactoryHelper from "./AssetFactoryHelper"; import Vector from "openfl/Vector"; declare namespace starling.assets { /** * An AssetFactory is responsible for creating a concrete instance of an asset. * * * * <p>The AssetManager contains a list of AssetFactories, registered via 'registerFactory'. * * When the asset queue is processed, each factory (sorted by priority) will be asked if it * * can handle a certain AssetReference (via the 'canHandle') method. If it can, the 'create' * * method will be called, which is responsible for creating at least one asset.</p> * * * * <p>By extending 'AssetFactory' and registering your class at the AssetManager, you can * * customize how assets are being created and even add new types of assets.</p> * */ export class AssetFactory { /** * Creates a new instance. */ protected constructor(); /** * Returns 'true' if this factory can handle the given reference. The default * * implementation checks if extension and/or mime type of the reference match those * * of the factory. */ canHandle(reference: AssetReference): boolean; /** * This method will only be called if 'canHandle' returned 'true' for the given reference. * * It's responsible for creating at least one concrete asset and passing it to 'onComplete'. * * * * @param reference The asset to be created. If a local or remote URL is referenced, * * it will already have been loaded, and 'data' will contain a ByteArray. * * @param helper Contains useful utility methods to be used by the factory. Look * * at the class documentation for more information. * * @param onComplete To be called when loading is successful. 'type' parameter is optional. * * <pre>function(name:String, asset:Object, type:String):void;</pre> * * @param onError To be called when creation fails for some reason. Do not call * * 'onComplete' when that happens. <pre>function(error:String):void</pre> * */ create(reference: AssetReference, helper: AssetFactoryHelper, onComplete: (arg0: string, arg1: any) => void, onError: (arg0: string) => void): void; /** * Add one or more mime types that identify the supported data types. Used by * * 'canHandle' to figure out if the factory is suitable for an asset reference. */ addMimeTypes(args: Array<string>): void; /** * Add one or more file extensions (without leading dot) that identify the supported data * * types. Used by 'canHandle' to figure out if the factory is suitable for an asset * * reference. */ addExtensions(args: Array<string>): void; /** * Returns the mime types this factory supports. */ getMimeTypes(out?: Vector<string>): Vector<string>; /** * Returns the file extensions this factory supports. */ getExtensions(out?: Vector<string>): Vector<string>; get priority(): number; set priority(value: number) } } export default starling.assets.AssetFactory;