| René Nyffenegger's collection of things on the web | |
|
René Nyffenegger on Oracle - Most wanted - Feedback
- Follow @renenyffenegger
|
MovieClip_ [Ming wrapper class] | ||
|
A Flash movie (Movie) and a sprite (MovieClip) are very similar. The shared functionality
is defined in this class which is the base class for Movie and MovieClip.
Selected methodsStop
Stop() is a short cut method that inserts the Action Script function
stop. See the Stop() implementation.
NextFrame
NextFrame() advances the movie to the next frame.
The sourceMovieClip_.h
#ifndef MOVIE_CLIP_ABSTRACT_H
#define MOVIE_CLIP_ABSTRACT_H
#include <string>
#include "ming.h"
#include "Shape.h"
#include "Button.h"
#include "Action.h"
#include "DisplayItem.h"
#include "DisplayClip.h"
#include "Morph.h"
#include "TextField.h"
/* A Movie and a MovieClip share some common functionality.
Why not put these in an abstract base class? */
class MovieClip_ {
friend class Movie;
friend class MovieClip;
public:
virtual void Add (Action const&) = 0;
virtual DisplayItem Add (Character_ &) = 0;
DisplayItem Add (Character_ &, unsigned int z);
virtual DisplayClip Add (MovieClip &) = 0;
DisplayClip Add (MovieClip &, unsigned int z);
/* Mask is very similar to Add, except that it adds a mask */
DisplayItem Mask(Character_ &, unsigned int level);
DisplayClip Mask(MovieClip &, unsigned int level);
/* Insert stop(); action... */
virtual void Stop () = 0;
virtual void NextFrame() const = 0;
virtual void Remove (DisplayItem item) = 0;
virtual void Frames (int) = 0;
virtual void Label (std::string const&) = 0;
/* TODO
virtual void StartSound() = 0;
virtual void StopSound () = 0;
*/
};
#endif
MovieClip_.cpp
#include "MovieClip_.h"
DisplayItem MovieClip_::Mask(Character_ & c, unsigned int z) {
DisplayItem d = Add(c);
d.MaskLevel(z);
return d;
}
DisplayClip MovieClip_::Mask(MovieClip & mc, unsigned int z) {
DisplayClip dc = Add(mc);
dc.MaskLevel(z);
return dc;
}
//void MovieClip_::Add(Action const& a) {
// SWFMovie_add(movie_, a.swf_block());
//}
DisplayItem MovieClip_::Add(Character_ & c, unsigned int z) {
DisplayItem d = Add(c);
d.Z(z);
return DisplayItem(d);
}
DisplayClip MovieClip_::Add(MovieClip & mc, unsigned int z) {
DisplayClip dc = Add(mc);
dc.Z(z);
return DisplayClip(dc);
}
|