actioncompiler.cpp

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

CPP
71
字号
#include "actioncompiler.h"

class CompiledActions : public FlashActionRecord
{
	char * data;
	int len;
public:
	CompiledActions(char *data, int len)
	{
		
		this->data = (char*)malloc(len);
		memcpy(this->data, data, len);
		this->len = len;
	}

	~CompiledActions()
	{
		free (data);
	}
	
	void Write(std::ostream &out)
	{
		out.write(data,len);
	}
	void Read(std::istream &in)
	{
	
	}
};

class ActionCompiler
{
	int version;
public: 
	ActionCompiler(int version = 5)
	{
		this->version = version;		
	}	

	void Compile(char *script, std::stringstream &outputStream)
	{
		Buffer outputBuffer;

		int success = 0;

		if(version == 4)
		{
			swf4ParseInit(script,0);
			success = swf4parse(&outputBuffer);
		}
		else if(version == 5)
		{	
			swf5ParseInit(script,0);
			success = swf5parse(&outputBuffer);
		}
		else
		{
			//throw Exception("Unsupported flash version");
		}

		if(success != 0)
		{
			//throw Exception("Output buffer is empty");
			return;
		}

		outputStream.write(outputBuffer->buffer, bufferLength(outputBuffer));	        
		destroyBuffer(outputBuffer);
	}

};

⌨️ 快捷键说明

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