📄 program.cpp
字号:
/////////////////////////////////////////////////////////////// Flash Plugin and Player// Copyright (C) 1998,1999 Olivier Debon// // This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.// // This program 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 General Public License for more details.// // You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.// ///////////////////////////////////////////////////////////////// Author : Olivier Debon <odebon@club-internet.fr>// #include "swf.h"#define NOTHING 0x0#define WAKEUP 0x1#define GOTO 0x2#define REFRESH 0x4#ifdef RCSIDstatic char *rcsid = "$Id: program.cc,v 1.1.1.1 2004/06/04 21:16:33 tgc Exp $";#endif#define PRINT 0int debug = 0;Program::Program(FlashMovie *movie, long n){ long f; this->movie = movie; totalFrames = 0; dl = new DisplayList(movie); if (dl == NULL) return; frames = new Frame[n]; if (frames == NULL) { delete dl; return; } nbFrames = 0; totalFrames = n; currentFrame = 0; loadingFrame = 0; movieWait = 1; nextFrame = currentFrame; for(f = 0; f < n; f++) { frames[f].controls = 0; frames[f].label = NULL; } movieStatus = MoviePlay; settings = 0;}Program::~Program(){ int i; Control *ctrl, *ctrl1; delete dl; if (frames != NULL) { for(i=0;i<nbFrames;i++) { ctrl = frames[i].controls; if (frames[i].label) free(frames[i].label); while (ctrl != NULL) { ctrl1 = ctrl->next; ctrl->next = NULL; delete ctrl; ctrl = ctrl1; } } delete[] frames; }}voidProgram::validateLoadingFrame(){ nbFrames = loadingFrame; loadingFrame++; movieWait = 0;}Frame *Program::getFrames(){ return frames;}longProgram::getNbFrames(){ return nbFrames;}DisplayList *Program::getDisplayList(){ return dl;}longProgram::getCurrentFrame(){ return currentFrame;}voidProgram::setCurrentFrame(long n){ currentFrame = n; nextFrame = n; //refresh = 1;}voidProgram::gotoFrame(GraphicDevice *gd, long frame){ long f; //printf("GotoFrame %d (Current = %d)\n", frame, currentFrame); dl->clearList(); for(f=0; f <= frame; f++) { runFrame(gd, 0, f, 0); }}longProgram::runFrame(GraphicDevice *gd, SoundMixer *sm, long f, long action){ Control *ctrl; Character *character; Matrix *matrix; Cxform *cxform; long status = NOTHING; long update = 0; char *name;#if PRINT&1 if (action) printf("Prog %x (dl=%x): Frame N
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -