www.pudn.com > FlashFormat.rar > FDTSprite.cpp
// Copyright © 1999 Middlesoft, Inc. All rights reserved.
// First Created By Lee Thomason.
// First Created On 09/08/1999.
// Last Modified On 11/09/1999.
/****************************************************************************************
File Summary: FDTSprite.cpp
This source file contains the definition for all low-level sprite-related functions,
grouped by classes:
Class Member Function
FDTSprite FDTSprite();
~FDTSprite();
void AddFObj(FObj* );
void WriteToSWFStream(FSWFStream* );
****************************************************************************************/
#pragma warning (disable:4786)
#include "FDTSprite.h"
#include "FSWFStream.h"
//////////////////////////////////////////////////////////////////////////////////////
// -------- FDTSprite -------------------------------------------------------------
FDTSprite::FDTSprite()
{
characterID = FObjCollection::Increment();
numOfFrames = 0;
}
FDTSprite::~FDTSprite()
{
while ( !objectList.empty() )
{
delete objectList.front();
objectList.pop_front();
}
}
void FDTSprite::AddFObj(FObj* _object)
{
if ( _object->IsShowFrame() )
numOfFrames++;
objectList.push_back(_object);
}
void FDTSprite::WriteToSWFStream(FSWFStream* _SWFStream)
{
FSWFStream body;
body.WriteWord(characterID);
body.WriteWord(numOfFrames);
std::list::iterator cursor;
for ( cursor = objectList.begin(); cursor != objectList.end(); cursor++ )
{
(*cursor)->WriteToSWFStream(&body);
}
// Put an end tag on the end of the temporary buffer:
body.AppendTag( stagEnd, 0, 0 );
// put the buffer into the main stream
_SWFStream->AppendTag( stagDefineSprite, body.Size(), &body );
}