fixed a typecast bug.
[swftools.git] / doc / swfc.xml
1 <?xml version='1.0'?>
2 <guide>
3     
4 <title>SWFC Manual</title>
5
6 <abstract>
7 swfc is a tool for generating flash files. You can write small simple scripts
8 and then have them compiled to SWF Flash Animations.
9 </abstract>
10
11
12 <!--
13
14 This comment aims to give a short overview over the tags defined in guide.xslt.
15 Most are like html.
16
17 Markups and Highlights:
18
19     <i>italic</i>
20     <b>bold</b>
21     <ul>Underline</ul>
22
23     <f>filename or pathname</f>
24     <c>variable name, command</c> ("c" stands for "code")
25
26 Paragraphs:
27
28     <p>
29     Paragraph
30     </p>
31
32 Line breaking:
33
34     <br/>
35
36 Links:
37
38     <uri>http://www.quiss.org</uri> OR
39     <uri link=http://www.quiss.org>Quiss</uri>
40
41 Shell scripts, commands to execute:
42
43     <shell>tail /var/log/messages</shell>
44
45 Code:
46     
47     <code lang="sc">   (The lang= is optional)
48         .flash
49             .box b1 100 100
50         .end
51     </code>
52
53 Tables:
54
55     <table>
56     <tr><td>Apples</td><td>Pears</td></tr>
57     <tr><td>3</td><td>4</td></tr>
58     </table>
59
60 Boxes:
61     <note>
62     Something interesting
63     </note>
64
65     <impo>
66     Something important
67     </impo>
68     
69     <warn>
70     Something to be careful about
71     </warn>
72
73 -->
74
75 <chapter><title>swfc Basics</title>
76
77  <section><title>Calling swfc</title>
78
79  <p>
80
81   swfc is command line based. You call it via
82
83   <shell>$ swfc file.sc</shell>
84
85   The filename of what is generated depends on the filename of the script (<f>file.sc</f>),
86   the filename given inside the script, and the optional <c>-o</c> passed to swfc.
87
88  </p>
89
90  <note>
91   Though swfc is a command-line utility, there also exists a nice graphical
92   frontend for it, called <uri link="http://www.ucolick.de/~de/Snarf/quiss">Swifty</uri>.
93  </note>
94
95  </section>
96
97  <section><title>A simple swfc example</title>
98
99   <p>
100    Let's create simple SWF file, shall we?
101    The following script creates a red box with a yellow border. On the right side you
102    see the script used, on the left side the swf file that is generated.
103   </p>
104
105   <code lang="swfc">
106 .flash name="box.swf"
107     .box b1 100 100 color=yellow fill=red
108     .put b1 pin=center scale=0%
109     .frame 100
110     .change b1 pin=center scale=100%
111     .frame 200
112     .change b1 pin=center scale=0%
113 .end
114   </code>
115
116   The <c>.box</c> command creates the box. Every object that is created must also be explicitly
117   put into the scene using <c>.put</c> to become visible.
118
119  </section>
120  
121  <section><title>Text generation</title>
122   
123   <code lang="swfc">
124 .flash name="text5.swf"
125 .font courier "Courier.swf"
126 .font helvetica "Helvetica.swf"
127 .text hithere text="HELLO" font=courier size=50% color=blue
128 .swf scene Scenery50.swf
129
130 .frame 0
131     .startclip hithere pin=center x=100 y=75 scale=50% #text clips...
132         .put scene # ...the image "scene"
133     .end
134 .frame 100
135      .change hithere rotate+=360 pin=center scale=100%
136
137 .end
138   </code>
139   
140   <code lang="swfc">
141 .flash name="text6.swf"
142 .font courier "Courier.swf"
143 .font helvetica "Helvetica.swf"
144 .text hello text="HELLO" font=helvetica size=50% color=blue
145 .text world text="WORLD" font=helvetica size=50% color=red
146
147 .frame 0
148         .put hello pin=center x=50 y=50 
149         .put world pin=center x=50 y=50 alpha=25%
150 .frame 200
151      .change hello rotate+=360 pin=center alpha=25% 
152      .change world rotate-=360 pin=center alpha=100% 
153 .end
154   </code>
155  
156  </section>
157
158  <section><title>Color transforms</title>
159
160   <code lang="swfc">
161 .flash name="cxform.swf" version=5
162     
163     .jpeg s1 "photo.jpeg" quality=80%
164
165     .put s1 x=50 y=50 scalex=110 scaley=110
166     .frame 100
167     .change s1 x=0 y=0 scalex=210 scaley=210 red=-1+255 green=-1+255 blue=-1+255 #invert
168     .frame 200
169     .change s1 x=100 y=50 scalex=110 scaley=110 red=0 green=+0 blue=+0 #remove red
170     .frame 300
171     .change s1 x=0 y=0 scalex=210 scaley=210 red=+0 green=2 blue=-1+255 #amplify green, invert blue
172     .frame 400
173     .change s1 x=50 y=100 scalex=110 scaley=110 red=2-128 green=-2+255 blue=+0.7+40 #alien glow
174     .frame 500
175     .change s1 x=0 y=0 scalex=210 scaley=210 red=8-1024 green=8-1024 blue=8-1024 #palette reduce
176     .frame 600
177     .change s1 x=0 y=0 scalex=210 scaley=210 red=+0 green=+0 blue=+0 #back to normal
178     .frame 700
179     .change s1 x=105 y=105 scalex=0 scaley=0 luminance=0 #fadeout
180 .end
181   </code>
182  
183  </section>
184  
185
186 </chapter>
187 </guide>