a quick tutorial on Pins
[swftools.git] / doc / examples / Pins.sc
1 # Pins.sc
2 # tutorial on Pins for the user.
3
4 .swf bbox=autocrop version=4 fps=25 name="Pins.swf"
5
6 .sprite reticle
7         .box box width=5 height=5 color=yellow
8         .put b1=box 0 0
9         .put b2=box 5 0
10         .put b3=box 0 5
11         .put b4=box 5 5
12 .end
13 #
14 .circle pin 8 color=blue fill=blue
15 #
16 .font helv "HelveticaBold.swf"
17 #
18 .text mesg1 text="(1) This tutorial explains \"pins\" . . ." font=helv color=yellow size=25%
19 .text mesg2 text="(2) Every object such as this simple box ..." font=helv color=red size=25%
20 .text mesg3 text="(3) ... is \"pinned\" to a screen x,y." font=helv color=yellow size=25%
21 #
22 .text mesg4 text="(4) The yellow reticle is at 100,100..." font=helv color=yellow size=25%
23 .text mesg5 text="(5) The box's \"pin\" is at (relative to the box) 0,0." font=helv color=green size=25%
24 .text mesg6 text="(6) When we .put the box at 100,100, its pin lands..." font=helv color=blue size=25%
25 .text mesg7 text="(7) ... on 100,100." font=helv color=yellow size=25%
26 #
27 .text mesg8 text="(8) Relative 0,0 is the default pin." font=helv color=yellow size=25%
28 .text mesg9 text="(9) If we rotate the box..." font=helv color=red size=25%
29 .text mesg10 text="(10)... it rotates around its default pin" font=helv color=red size=25%
30 .text mesg11 text="(11) If we specify a special pin called \"center\"" font=helv color=red size=25%
31 .text mesg12 text="(12) the box center will be at 100,100..." font=helv color=red size=25%
32 .text mesg13 text="(13) and it will rotate in place." font=helv color=red size=25%
33 #
34 .text mesg14 text="(14) Interesting things will happen..." font=helv color=red size=25%
35 .text mesg15 text="(15) ... if a .change command moves the pin!" font=helv color=red size=25%
36 # .text mesg13 text="(16) and it will rotate in place." font=helv color=red size=25%
37 # .text mesg13 text="(17) and it will rotate in place." font=helv color=red size=25%
38 # .text mesg13 text="(18) and it will rotate in place." font=helv color=red size=25%
39 # .text mesg13 text="(19) and it will rotate in place." font=helv color=red size=25%
40
41 #
42 # oh no, we have to make zillions of these sprites... sigh...
43 .sprite m1
44         .frame 0
45         .put mesg1 x=0 y=10 alpha=0     # mesg 1 placed
46         .frame 20
47         .change mesg1 alpha=100%        # mesg 1 bright
48         .frame 40
49         .change mesg1                   # mesg 1 hold
50         .frame 60
51         .change mesg1 alpha=0           # mesg 1 fade
52         .frame 65
53         .del mesg1                      # mesg 1 gone
54 .end
55 #
56 .sprite m2
57         .frame 0
58         .put mesg2 x=0 y=10 alpha=0     # mesg 1 placed
59         .frame 20
60         .change mesg2 alpha=100%        # mesg 1 bright
61         .frame 40
62         .change mesg2                   # mesg 1 hold
63         .frame 60
64         .change mesg2 alpha=0           # mesg 1 fade
65         .frame 65
66         .del mesg2                      # mesg 1 gone
67 .end
68 #
69 .sprite m3
70         .frame 0
71         .put mesg3 x=0 y=10 alpha=0     # mesg 1 placed
72         .frame 20
73         .change mesg3 alpha=100%        # mesg 1 bright
74         .frame 40
75         .change mesg3                   # mesg 1 hold
76         .frame 60
77         .change mesg3 alpha=0           # mesg 1 fade
78         .frame 65
79         .del mesg3                      # mesg 1 gone
80 .end
81 #
82 .sprite m4
83         .frame 0
84         .put mesg4 x=0 y=10 alpha=0     # mesg 1 placed
85         .frame 20
86         .change mesg4 alpha=100%        # mesg 1 bright
87         .frame 40
88         .change mesg4                   # mesg 1 hold
89         .frame 60
90         .change mesg4 alpha=0           # mesg 1 fade
91         .frame 65
92         .del mesg4                      # mesg 1 gone
93 .end
94 #
95 .sprite m5
96         .frame 0
97         .put mesg5 x=0 y=10 alpha=0     # mesg 1 placed
98         .frame 20
99         .change mesg5 alpha=100%        # mesg 1 bright
100         .frame 40
101         .change mesg5                   # mesg 1 hold
102         .frame 60
103         .change mesg5 alpha=0           # mesg 1 fade
104         .frame 65
105         .del mesg5                      # mesg 1 gone
106 .end
107 #
108 .sprite m6
109         .frame 0
110         .put mesg6 x=0 y=10 alpha=0     # mesg 1 placed
111         .frame 20
112         .change mesg6 alpha=100%        # mesg 1 bright
113         .frame 40
114         .change mesg6                   # mesg 1 hold
115         .frame 60
116         .change mesg6 alpha=0           # mesg 1 fade
117         .frame 65
118         .del mesg6                      # mesg 1 gone
119 .end
120 #
121 .sprite m7
122         .frame 0
123         .put mesg7 x=0 y=10 alpha=0     # mesg 1 placed
124         .frame 20
125         .change mesg7 alpha=100%        # mesg 1 bright
126         .frame 40
127         .change mesg7                   # mesg 1 hold
128         .frame 60
129         .change mesg7 alpha=0           # mesg 1 fade
130         .frame 65
131         .del mesg7                      # mesg 1 gone
132 .end
133 #
134 .sprite m8
135         .frame 0
136         .put mesg8 x=0 y=10 alpha=0     # mesg 1 placed
137         .frame 20
138         .change mesg8 alpha=100%        # mesg 1 bright
139         .frame 40
140         .change mesg8                   # mesg 1 hold
141         .frame 60
142         .change mesg8 alpha=0           # mesg 1 fade
143         .frame 65
144         .del mesg8                      # mesg 1 gone
145 .end
146 #
147 .sprite m9
148         .frame 0
149         .put mesg9 x=0 y=10 alpha=0     # mesg 1 placed
150         .frame 20
151         .change mesg9 alpha=100%        # mesg 1 bright
152         .frame 40
153         .change mesg9                   # mesg 1 hold
154         .frame 60
155         .change mesg9 alpha=0           # mesg 1 fade
156 .end
157 #
158 .sprite m10
159         .frame 0
160         .put mesg10 x=0 y=10 alpha=0    # mesg 1 placed
161         .frame 20
162         .change mesg10 alpha=100%       # mesg 1 bright
163         .frame 40
164         .change mesg10                  # mesg 1 hold
165         .frame 60
166         .change mesg10 alpha=0          # mesg 1 fade
167 .end
168 #
169 .sprite m11
170         .frame 0
171         .put mesg11 x=0 y=10 alpha=0    # mesg 1 placed
172         .frame 20
173         .change mesg11 alpha=100%       # mesg 1 bright
174         .frame 40
175         .change mesg11                  # mesg 1 hold
176         .frame 60
177         .change mesg11 alpha=0          # mesg 1 fade
178 .end
179 #
180 .sprite m12
181         .frame 0
182         .put mesg12 x=0 y=10 alpha=0    # mesg 1 placed
183         .frame 20
184         .change mesg12 alpha=100%       # mesg 1 bright
185         .frame 40
186         .change mesg12                  # mesg 1 hold
187         .frame 60
188         .change mesg12 alpha=0          # mesg 1 fade
189 .end
190 #
191 .sprite m13
192         .frame 0
193         .put mesg13 x=0 y=10 alpha=0    # mesg 1 placed
194         .frame 20
195         .change mesg13 alpha=100%       # mesg 1 bright
196         .frame 40
197         .change mesg13                  # mesg 1 hold
198         .frame 60
199         .change mesg13 alpha=0          # mesg 1 fade
200 .end
201 #
202 .sprite m14
203         .frame 0
204         .put mesg14 x=0 y=10 alpha=0    # mesg 1 placed
205         .frame 20
206         .change mesg14 alpha=100%       # mesg 1 bright
207         .frame 40
208         .change mesg14                  # mesg 1 hold
209         .frame 60
210         .change mesg14 alpha=0          # mesg 1 fade
211 .end
212 #
213 .sprite m15
214         .frame 0
215         .put mesg15 x=0 y=10 alpha=0    # mesg 1 placed
216         .frame 20
217         .change mesg15 alpha=100%       # mesg 1 bright
218         .frame 40
219         .change mesg15                  # mesg 1 hold
220         .frame 60
221         .change mesg15 alpha=0          # mesg 1 fade
222 .end
223 #
224 .box box1 width=100 height=100 color=red line=5     # a simple red box
225     
226 .frame 0  
227         .put m1 0 0                     # at rel frame 20 is the bright spot, or "next" frame
228         .put box1 x=100 y=100 alpha=0
229 .frame 20                               # *** slide 1
230 .frame 60
231         .change box1 alpha=100%         # box bright
232         .put m2 0 0 
233 .frame 61
234         .del m1
235 .frame 80
236         .change box1                    # box hold
237 .frame 120
238         .put m3 0 0
239         .jump box1 alpha=100%           # make the box appear suddenly and leap around a bit
240 .frame 121 .del m2
241 .frame 125
242         .jump box1 x+=20 y+=20          # why doesn't this work?
243 .frame 130
244         .jump box1 x-=20
245 .frame 135
246         .jump box1 x-=20 y-=20
247 .frame 140
248         .jump box1 x=100 y=100          # put box bck where it belongs
249 .frame 145
250         .jump box1 x-=20 y-=15
251 .frame 150
252         .jump box1 x+=20 y+=40
253 .frame 155
254         .jump box1 x=100 y=100
255 .frame 160
256         .put pin 100 100 alpha=0 pin=center     # pin placed (dark, bottom layer)
257         .put reticle 100 100 alpha=0 pin=center # place reticle (dark, top layer)
258 .frame 180
259         .put m4 0 0
260         .change box1 alpha=0            # box fade
261         .change reticle alpha=100%      # reticle bright
262 .frame 181
263         .del m3
264 .frame 200
265         .change reticle                 # hold reticle
266 .frame 220
267         .change reticle alpha=0         # reticle dark
268         .change pin                     # hold that pin
269         .change box1                    # hold that box
270 .frame 240
271         .put m5 0 0
272 .frame 241
273         .del m4
274 .frame 260
275         .change box1 alpha=100%         # box bright
276 .frame 280
277         .change pin alpha=100%          # pin bright
278 .frame 300
279         .put m6 0 0
280         .jump pin blue=0 red=+100%      # blink the pin!
281 .frame 301
282         .del m5
283 .frame 305
284         .jump pin blue=100% red=0
285 .frame 310
286         .jump pin blue=0 red=+100%
287 .frame 315
288         .jump pin blue=100% red=0
289 .frame 320
290         .jump pin blue=0 red=+100%
291 .frame 325
292         .jump pin blue=100% red=0
293 .frame 330
294         .jump pin blue=0 red=+100%
295 .frame 335
296         .jump pin blue=100% red=0
297 .frame 340
298         .change reticle                 # hold that reticle!
299         .jump pin blue=0 red=+100%
300 .frame 345
301         .jump pin blue=100% red=0
302 .frame 360
303         .put m7 0 0
304         .change reticle alpha=100%
305 .frame 361
306         .del m6
307 .frame 420
308         .put m8 0 0
309 .frame 421
310         .del m7
311 .frame 460
312         .change box1
313 .frame 480
314         .put m9
315 .frame 481 
316         .del m8
317 .frame 500
318         .change box1 rotate+=90
319 .frame 540
320         .put m10
321 .frame 541 
322         .change box1 rotate-=90
323         .del m9
324         .change pin
325 .frame 600
326         .put m11
327         .change box1
328 .frame 601
329         .del m10
330 .frame 620
331         .change box1 x=100 y=100 pin=center
332 .frame 625
333         .jump pin blue=100% red=0
334 .frame 640
335         .jump pin blue=0 red=+100%
336 .frame 655
337         .jump pin blue=100% red=0
338 .frame 660
339         .put m12
340         .jump pin blue=0 red=+100%
341 .frame 661 
342         .del m11
343 .frame 665
344         .jump pin blue=100% red=0
345 .frame 670
346         .jump pin blue=0 red=+100%
347 .frame 675
348         .jump pin blue=100% red=0       
349 .frame 700
350         .change box1
351 .frame 720
352         .put m13
353         .change box1 rotate+=90 pin=center
354 .frame 721
355         .del m12
356 .frame 760
357         .change box1 rotate-=90
358 .frame 780
359         .put m14
360         .change box1 pin=(0,0) x=100 y=100
361 .frame 781
362         .del m13
363 .frame 840
364         .put m15
365         .change box1 pin=center rotate+=90
366 .frame 841
367         .del m14
368 .frame 901
369         .del m15
370         .change box1 pin=(0,0) rotate-=90
371 .frame 960
372         .change box1 alpha=0
373
374 .end
375
376