⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 movieclip.c

📁 flash swf file player
💻 C
字号:
/*    Ming, an SWF output library    Copyright (C) 2002  Opaque Industries - http://www.opaque.net/    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Lesser General Public    License as published by the Free Software Foundation; either    version 2.1 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Lesser General Public License for more details.    You should have received a copy of the GNU Lesser General Public    License along with this library; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#include <stdlib.h>#include "movieclip.h"#include "blocklist.h"#include "displaylist.h"#include "blocks/soundstream.h"#include "blocks/soundinstance.h"#include "blocks/outputblock.h"#include "blocks/sprite.h"#include "blocks/shape.h"#include "blocks/morph.h"#include "blocks/button.h"#include "blocks/text.h"struct SWFMovieClip_s{	struct SWFSprite_s sprite;	SWFBlockList blockList;	SWFDisplayList displayList;	unsigned short nFrames;};voiddestroySWFMovieClip(SWFMovieClip movieClip){	destroySWFBlockList(movieClip->blockList);	destroySWFDisplayList(movieClip->displayList);	destroySWFSprite((SWFSprite)movieClip);}SWFMovieClipnewSWFMovieClip(){	SWFMovieClip clip = (SWFMovieClip)newSWFSprite();	clip = (SWFMovieClip)realloc(clip, sizeof(struct SWFMovieClip_s));	clip->blockList = newSWFBlockList();	clip->displayList = newSWFSpriteDisplayList();	return clip;}voidSWFMovieClip_setNumberOfFrames(SWFMovieClip clip, int totalFrames){	SWFSprite_setNumberOfFrames((SWFSprite)clip, totalFrames);}voidSWFMovieClip_setSoundStream(SWFMovieClip clip,														SWFSoundStream sound, float rate){	SWFBlock block = SWFSoundStream_getStreamHead(sound, rate, 0);		if ( block != NULL )	{		SWFBlockList_addBlock(clip->blockList, block);		SWFDisplayList_setSoundStream(clip->displayList, sound);	}}SWFSoundInstanceSWFMovieClip_startSound(SWFMovieClip clip, SWFSound sound){	SWFSoundInstance inst = newSWFSoundInstance(sound);	SWFCharacter_addDependency((SWFCharacter)clip, (SWFCharacter)sound);	SWFBlockList_addBlock(clip->blockList, (SWFBlock)inst);	return inst;}voidSWFMovieClip_stopSound(SWFMovieClip clip, SWFSound sound){	SWFCharacter_addDependency((SWFCharacter)clip, (SWFCharacter)sound);	SWFBlockList_addBlock(clip->blockList,												(SWFBlock)newSWFSoundInstance_stop(sound));}SWFDisplayItemSWFMovieClip_add(SWFMovieClip clip, SWFBlock block){	if ( SWFBlock_getType(block) == SWF_DEFINEBITS ||			 SWFBlock_getType(block) == SWF_DEFINEBITSJPEG2 ||			 SWFBlock_getType(block) == SWF_DEFINEBITSJPEG3 ||			 SWFBlock_getType(block) == SWF_DEFINELOSSLESS ||			 SWFBlock_getType(block) == SWF_DEFINELOSSLESS2 )	{		block = (SWFBlock)newSWFShapeFromBitmap((SWFBitmap)block);	}	if ( SWFBlock_isCharacter(block) )	{		SWFCharacter_getDependencies((SWFCharacter)block,																 &CHARACTER(clip)->dependencies,																 &CHARACTER(clip)->nDependencies);		SWFCharacter_addDependency((SWFCharacter)clip, (SWFCharacter)block);		SWFCharacter_setFinished((SWFCharacter)block);		return SWFDisplayList_add(clip->displayList, (SWFCharacter)block);	}	else	{		/* XXX - make sure it's a legit block for a sprite */		SWFBlockList_addBlock(clip->blockList, block);	}	return NULL;}voidSWFMovieClip_remove(SWFMovieClip clip, SWFDisplayItem item){	SWFDisplayItem_remove(item);}voidSWFMovieClip_labelFrame(SWFMovieClip clip, const char *label){	SWFSprite_addBlock((SWFSprite)clip, (SWFBlock)newSWFFrameLabelBlock(label));}voidSWFMovieClip_nextFrame(SWFMovieClip clip){	SWFDisplayList_writeBlocks(clip->displayList, clip->blockList);	SWFBlockList_addToSprite(clip->blockList, (SWFSprite)clip);	SWFSprite_addBlock((SWFSprite)clip, newSWFShowFrameBlock());}/* * Local variables: * tab-width: 2 * c-basic-offset: 2 * End: */

⌨️ 快捷键说明

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