File: SWFMovie.java

package info (click to toggle)
libming 0.2a.cvs20020110-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,204 kB
  • ctags: 4,173
  • sloc: ansic: 19,467; yacc: 2,149; cpp: 1,518; java: 1,253; ruby: 516; perl: 462; python: 436; makefile: 295; sh: 4
file content (135 lines) | stat: -rw-r--r-- 3,475 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
//
// Description:
//    SWFMovie Class
//
// Authors:
//    Jonathan Shore <jshore@e-shuppan.com>
//    Based on php wrapper developed by <dave@opaque.net>
//
// Copyright:
//    Copyright 2001 E-Publishing Group Inc.  Permission is granted to use or
//    modify this code provided that the original copyright notice is included.
//
//    This software is distributed with no warranty of liability, merchantability,
//    or fitness for a specific purpose.
//



import SWFSoundI;
import SWFDisplayItem;



//
//  SWFMovie Class
//	top-level swf movie class
//
//  Notes
//    -	too bad the notion of movie and sprite aren't the same.  Effectively
//	they should be.
//
//    -	we should add coordinate system specification and perspective options
//	to give this more flexibility
//
public class SWFMovie extends SWFObject implements SWFMovieI {

    public SWFMovie ()
	throws SWFException
    { 
	setHandle (nNew()); 
    }

    public void	setScale (float scale)
        { nSetScale (scale); }
    public void	setCubicThreshold (int v)
        { nSetCubicThreshold (v); }
    
    public void	setRate (float rate)
        { nSetRate (handle, rate); }
    public void	setDimension (int width, int height)
        { nSetDimension (handle, width, height); }
    public void	setFrames (int nframes)
        { nSetRate (handle, nframes); }

    public void	setBackground (int r, int g, int b)
        { nSetBackground (handle, r,g,b); }
    public void	setSoundStream (SWFSoundI sound)
	throws SWFException
        { sound.eval(); nSetSoundStream (handle, sound.getHandle()); }


    public SWFDisplayItemI add (SWFObjectI object)
	throws SWFException
    { 
	object.eval();
	preserve (object);
	SWFDisplayItemI i = 
	    new SWFDisplayItem (nAdd (handle, object.getHandle()));
	object.getMatrix().apply (i);

	return i; 
    }

    public SWFDisplayItemI add (SWFObjectI object, int depth) 
	throws SWFException
    { 
	SWFDisplayItemI i = add (object); 
	i.setDepth(depth); 
	return i; 
    }


    public void	remove (SWFDisplayItemI item)
        { nRemove (handle, item.getHandle()); }

    public void	nextFrame()
        { nNextFrame (handle); }
    public void	labelFrame (String label)
        { nLabelFrame (handle, label); }

    public void	save (String file)
        { nSave (handle, file); }
    public byte[] output ()
        { return nOutput (handle); }
    public String toString ()
        { return new String (nOutput (handle)); }


    protected void finalize()
	throws Throwable
    {
	nDestroy (handle);
	super.finalize();
    }


    // native methods

    protected native int	nNew ();
    protected native void	nDestroy (int handle);

    protected native void	nSetScale (float scale);
    protected native void	nSetCubicThreshold (int v);
    
    protected native void	nSetRate (int handle, float rate);
    protected native void	nSetDimension (int handle, int width, int height);
    protected native void	nSetFrames (int handle, int nframes);

    protected native void	nSetBackground (int handle, int r, int g, int b);
    protected native void	nSetSoundStream (int handle, int Hsound);

    protected native int	nAdd (int handle, int Hobject);
    protected native void	nRemove (int handle, int Hitem);

    protected native void	nNextFrame(int handle);
    protected native void	nLabelFrame (int handle, String label);

    protected native void	nSave (int handle, String file);
    protected native byte[]	nOutput (int handle);

};