import { IAsset, ParserBase, ResourceDependency } from "@awayjs/core"; import { ISceneGraphFactory, MovieClip } from "@awayjs/scene"; import { MethodMaterial } from "@awayjs/materials"; import { ABCBlock, UnparsedTag, DictionaryEntry } from "@awayjs/graphics"; import { SWFFrame } from "./SWFFrame"; import { SWFFile } from "./SWFFile"; /** * SWFParser provides a parser for the SWF data type. * Based on Shumway */ export declare class SWFParser extends ParserBase { private pendingUpdateDelays; abcBlocks: ABCBlock[]; dictionary: DictionaryEntry[]; private fonts; private swfData; private env; symbolClassesMap: string[]; symbolClassesList: { id: number; className: string; }[]; private eagerlyParsedSymbolsMap; private eagerlyParsedSymbolsList; private _uncompressedLength; private _uncompressedLoadedLength; private _dataView; private _dataStream; private _decompressor; private _jpegTables; private _endTagEncountered; private _loadStarted; private _lastScanPosition; private _currentFrameLabels; private _currentSoundStreamHead; private _currentSoundStreamBlock; private _currentControlTags; private _currentActionBlocks; private _currentInitActionBlocks; private _currentExports; private _factory; private _parsed_header; private _body; private _debug; private _startedParsing; private _swfFile; get swfFile(): SWFFile; soundExports: any; /** * Creates a new AWD3Parserutils object. * @param uri The url or id of the data or file to be parsed. * @param extra The holder for extra contextual data that the parser might need. */ constructor(factory?: ISceneGraphFactory); /** * Indicates whether or not a given file extension is supported by the parser. * @param extension The file extension of a potential file to be parsed. * @return Whether or not the given file type is supported. */ static supportsType(extension: string): boolean; /** * Tests whether a data block can be parsed by the parser. * @param data The data block to potentially be parsed. * @return Whether or not the given data is supported. */ static supportsData(data: any): boolean; /** * @inheritDoc */ _iResolveDependency(resourceDependency: ResourceDependency): void; /** * @inheritDoc */ _iResolveDependencyFailure(resourceDependency: ResourceDependency): void; /** * Resolve a dependency name * * @param resourceDependency The dependency to be resolved. */ _iResolveDependencyName(resourceDependency: ResourceDependency, asset: IAsset): string; private externalDependenciesCount; /** * @inheritDoc */ _pProceedParsing(): boolean; private _awaySymbols; getMaterial(bitmapIndex: number): MethodMaterial; private myTestSprite; private _mapMatsForBitmaps; parseSymbolsToAwayJS(): void; private _buttonIds; private _mcIds; textFormatAlignMap: string[]; framesToTimeline(symbol: any, swfFrames: SWFFrame[], states: any, buttonActions: any, buttonSound?: any): MovieClip; _pStartParsing(frameLimit: number): void; dispose(): void; private updateTimers; private _buttonSounds; initSWFLoading(initialBytes: Uint8Array, length: number): void; finishLoading(): void; getSymbol(id: number): any; getParsedTag(unparsed: UnparsedTag): any; private readHeaderAndInitialize; private parseHeaderContents; private processFirstBatchOfDecompressedData; private processDecompressedData; private scanLoadedData; private scanTagsToOffset; /** * Parses tag header information at the current seek offset and stores it in the given object. * * Public so it can be used by tools to parse through entire SWFs. */ parseNextTagHeader(target: UnparsedTag): boolean; private Utf8ArrayToStr; private scanTag; parseSpriteTimeline(spriteTag: DictionaryEntry): any; private parseMetaData; private jumpToNextTag; private emitTagSlopWarning; private finishFrame; private setFileAttributes; private setSceneAndFrameLabelData; private addControlTag; private addLazySymbol; private decodeEmbeddedFont; private registerEmbeddedFont; private decodeEmbeddedImage; }