atflashimporter.h

来自「这是一个用VC++开发的flashsource端的程序」· C头文件 代码 · 共 86 行

H
86
字号
#ifndef AtFlashImporter_h_
#define AtFlashImporter_h_

#pragma warning( disable : 4786 )

#include <map>

#include "FImport.h"
#include "FShape.h"
#include "AtFlash.h"

/* A map of old shape tags to new character IDs. 
 * Each flash file is imported with a different set of shapes, and different but
 * initially overlapping shape ids. Each file also has place object tags that refer
 * to the ids in the same file.
 * We need to remap the ids. The ids get remapped from the local, private space of
 * the characters, to the global space of the engine, using this map.
 * The key is the old tag, the value is the new id.
 */
typedef std::map<int, int>		AtFlashIdMap;

class AtFlashImportHandler : public FlashImportHandler
{
	AtFlashIdMap	mIdMap;
	AtFlash *		mFlash;

public:
	AtFlashImportHandler( AtFlash *flash )
	{
		mFlash = flash;
	}

	~AtFlashImportHandler();

	virtual void Import(FlashHeader &data);
	virtual void Import(FlashTagHeader &data);
	
	virtual void Import(FlashTagRemoveObject *data);
	virtual void Import(FlashTagRemoveObject2 *data);
	virtual void Import(FlashTagPlaceObject *data);
	virtual void Import(FlashTagPlaceObject2 *data);
	virtual void Import(FlashTagShowFrame *data);

	virtual void Import(FlashTagBackgroundColor *data);
	virtual void Import(FlashTagLabelFrame *data);
	virtual void Import(FlashTagProtect *data);
	virtual void Import(FlashTagEnd *data);
	virtual void Import(FlashTagExportAssets *data);
	virtual void Import(FlashTagImportAssets *data);
	virtual void Import(FlashTagDefineBitsPtr *data);
	virtual void Import(FlashTagEnableDebugger *data);
	virtual void Import(FlashTagFreeCharacter *data);
	
	virtual void Import(FlashTagDefineBitsJPEG1 *data);
	virtual void Import(FlashTagJPEGTables *data);
	virtual void Import(FlashTagDefineBitsJPEG2 *data);
	virtual void Import(FlashTagDefineBitsJPEG3 *data);
	virtual void Import(FlashTagDefineBitsLossless *data);
	virtual void Import(FlashTagDefineBitsLossless2 *data);

	virtual void Import(FlashTagDefineShape1 *data);
	virtual void Import(FlashTagDefineShape2 *data);
	virtual void Import(FlashTagDefineShape3 *data);
	
	virtual void Import(FlashTagDefineSound *data);
	virtual void Import(FlashTagDefineSoundMP3 *data);
	virtual void Import(FlashTagStartSound *data);
	virtual void Import(FlashTagSoundStreamHead *data);
	virtual void Import(FlashTagSoundStreamHead2 *data);
	virtual void Import(FlashTagSoundStreamBlock *data);

	virtual void Import(FlashTagDoAction *data);
};

// Based on FlashImporter, but very different implementation
class AtFlashImporter
{
public:
	AtFlashImporter() {}
	
	FlashHeader ImportHeader(std::istream &in, AtFlashImportHandler &i);
	bool ImportTag(std::istream &in, AtFlashImportHandler &i);
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?