-# ==================================================================================
-#
-# swfc(1) File format specification (well, sort of)
-# Version: 0.1
-#
-# ==================================================================================
-
-# Notice that the following is actually a valid .sc file, generating the four swfs
-# spec.flash, scroll1.flash, scroll2.flash and simple_viewer.flash. (Provided all included
-# files are present)
-
# File header
# -----------
# changed to .flash, or the value of the -o command line
# parameter if given)
-# load a simple object:
+# inherit swf movies:
# ---------------------
-.swf myshape1 "choo1.swf"
-.swf myshape2 filename="choo1.swf" # long form
-.swf myshape3 filename=choo1.swf # long form, without quotes
-.swf myshape4 choo1.swf # short form, without quotes
+.swf mymovie1 "choo1.swf"
+.swf mymovie2 filename="choo1.swf" # long form
+.swf mymovie3 filename=choo1.swf # long form, without quotes
+.swf mymovie4 choo1.swf # short form, without quotes
-#TODO: Do those files come from the current directory, the script directory or both?
+# Notice: An embedded animation can't have a different framerate than
+# the frame rate from the surrounding animation.
+
+#TODO: Those files currently come from the current directory- they should come from the script directory.
# load an image:
# --------------
.jpeg background "panorama.jpg"
.jpeg background2 "panorama.jpg" quality=30% #reduces jpeg quality
-.png background3 "choochoo.png"
+.png background3 "choochoo.png" #TODO
# (you can put this directly (generating a shape), or insert it into a shape via the fill= argument
# define a gradient
# -----------------
-#.gradient mygradient:
-# 0.000 0 0 0
-# 0.500 255 255 255
-# 1.000 0 0 0
-#.end
-
-# load several pages:
-# -------------------
-
-.movie train1 "choochoopuff.swf"
-
-# Notice: An embedded animation can't have a different framerate than
-# the frame rate from the surrounding animation.
+.gradient mygradient:
+ 0% red
+ 50% green
+ 75% aquamarine
+ 100% #ffffff
+.end
# Create simple objects:
# ----------------------
-# We should support some primitives to not have to load everything
-# from a file
.box mybox1 width=100 height=50 color=black fill=none #unfilled rectangle (just the lines)
.box mybox2 width=100 height=50 color=black #same as above
.box mybox3 width=100 height=50 color=black fill #filled black rectangle
.box mybox4 width=100 height=50 color=red line=2 fill=blue #blue rectangle with red edges
.box mybox5 width=100 height=50 color=red line=2 fill=background #part the background image, with red edges
-.circle mycircle1 r=50 color=#aa33ff fill=background
-.egon poly1 vertices=5
-# Continuous soundtrack synched up to several frames in a row:
-# ------------------------------------------------------------
+.circle mycircle1 r=50 color=#aa33ff fill=mygradient # filled with gradient (defined above)
+
+# Sounds:
+# -------
-# load a sound effect:
.sound sound1 "LocoStart.wav"
.frame 16
.play sound1 loop=1 #other arguments supported: nomultiple (don't start if already playing)
-
-.frame 20
-# this starts a synchronized soundtrack at this frame position. The command
-# expects a filename, not a sound object, as it would be duplicating the
-# sound object otherwise, and I'd rather have that done explicitly.
- .soundtrack "LocoStart.wav"
- #... TODO: should .soundtrack sounds have a name? we could support
- # .stop for them, which would simply stop generating mp3 data
-
.frame 55
-# unlike characters, sounds can't have multiple instances, and can't
-# be referenced once playing. So we stop the sound, not the instance.
.stop sound1
+.frame 66
+ # this starts a synchronized soundtrack at this frame position. The command
+ # expects a filename, not a sound object, as it would be duplicating the
+ # sound object otherwise, and I'd rather have that done explicitly.
+ .soundtrack "LocoStart.wav" # TODO
+
# Sound effects on user pressing or releasing a button
-.button playbutton shape=obj1
- onMouseDown: {
- }
- onMouseUp: {
- }
-# ...
-.end
-.buttonsounds playbutton press=sound1 release=sound2 enter=sound3 leave=sound4
+.button mybutton shape=obj1 # TODO
+.buttonsounds mybutton press=sound1 release=sound2 enter=sound3 leave=sound4 # TODO
# Elements of the movie should be animated by various means
# moving (x,y and zoom)
.jump obj1 x=200 y=200 # make object to suddenly change to 200,200 at frame 70.
.frame 190
- .qchange obj1 x=300 y=200 # make obj1 move towards 300,200...
+ .qchange obj1 x=300 y=200 # TODO # make obj1 move towards 300,200...
.frame 210
- .qchange obj1 x=300 y=300 # ... and then smoothly over to 300,300 using bspline interpolation
+ .qchange obj1 x=300 y=300 # TODO # ... and then smoothly over to 300,300 using bspline interpolation
#.frame 220 #TODO
# .jump obj1 x=reset y=reset
.frame 230
.del obj1 #Remove object again
-# morphing (easy for simple polygons, hard for more complex shapes)
-# -----------------------------------------------------------------
-
-.morphshape morphthing start="start.fig" end="end.fig"
-
-#.morphshape blop [V77CJQAvn3KKYD8GDb4gFgbAZ4oM2RBdhOtvEVRdpNdIJF4tQ5gh7GzxnFYNvxe7lpXVranU
-# +v/OjhGkCoUrOq9gUj4bJj0JjioYaA+VDsZ4Wq0+XLm0MiIgJZICQbADnUpdro5N11eVS699O]
+# morphing
+# --------
-# the following would be more work, but may be nice:
-.box mybox6 width=100 height=50 color=black
-.box mybox7 width=100 height=50 color=red
-.morphshape morphthing2 start=mybox1 end=mybox2
+.morphshape morphthing start="start.fig" end="end.fig" #TODO
+.frame 250
+ .put morphthing ratio=0%
+.frame 270
+ .change morphthing ratio=100%
# interpolation between crude manual animation frames
# ---------------------------------------------------
-.swf ball "ball.fig" #The ball should be white or violet to make the cxforms below work
+.shape ball "ball.xml" # TODO #The ball should be white or violet to make the cxforms below work
# now draw two balls, which fly around each other.
.frame 310
# the .qchange means, "interpolate to this position and frame, using quadratic splines".
- .qchange myball1 x=50 y=0
- .qchange myball2 x=50 y=100
+ .qchange myball1 x=50 y=0 #TODO
+ .qchange myball2 x=50 y=100 #TODO
.frame 320
# We could also use coordinates relative to start position: .change myball1 x+=100 y+=0
- .qchange myball1 x=100 y=100
- .qchange myball2 x=0 y=100
+ .qchange myball1 x=100 y=100 #TODO
+ .qchange myball2 x=0 y=100 #TODO
.frame 330
- .qchange myball1 x=50 y=100
- .qchange myball2 x=50 y=0
+ .qchange myball1 x=50 y=100 #TODO
+ .qchange myball2 x=50 y=0 #TODO
.frame 340
# Hmmm. This frame is the same as frame 0. How to prevent duplicating that one?
- .qchange myball1 x=0 y=100
- .qchange myball2 x=100 y=100
+ .qchange myball1 x=0 y=100 #TODO
+ .qchange myball2 x=100 y=100 #TODO
-# fading into existence/out of existence (colour xform):
-# ------------------------------------------------------
+# color transforms (fading)
+# -------------------------
# .put, .change, .qchange, .jump all support params which result in color transform.
# Everything up to the + is multiplicated, the rest summed.
-# TODO: negative values should also be allowed.
.put obj1 blue=50% #(scale blue color component to 50%)
.change obj1 blue=128 #(same as above)
.change obj1 rotate=45 # tilt object, counterclockwise
-# TODO: we still don't have full control over the 2x3 object-placement matrix.
-# (As we only have one parameter for the two values on the primary diagonal) ActionScript
-# has the same problem, however.
+# shearing
+# --------
+
+.change obj1 shear=100% # shear object
-# sprites
+# sprites (a.k.a. movieClips)
# -------
-# synonym: submovie
-
.sprite spr1
.frame 1 .put ball1=ball 0 0
.frame 2 .change ball1 100 100
# buttons
# -------
-# create at minimum a Play button and a Stop button, maybe a Rewind also
-.png playlogo "Play.png"
-.png stoplogo "Stop.png"
+.png play "Play.png" #TODO
+.png play_pressed "Play_pressed.png" #TODO
+.png stoplogo "Stop.png" #TODO
-.button myplaybutton shape=playlogo
-#everything till the .end is actionscript.
- press:
- play "spr1"
-.end
-.button mystopbutton shape=stoplogo
- press:
- stop "spr1"
-.end
-
-.put myplaybutton x=100 y=100
-.put mystopbutton x=200 y=100
+.button playbutton shape=play press=play_pressed #TODO
-# The following examples drop the .end command. This is only possible
-# if we keep the leading dot (.) in the command names. (Due to naming
-# conflicts with Actionscript)
+.button playbutton2 shape=play press=play_pressed:
+ [mouse down]
+ ... actionscript ...
+# ...
+.end
# button which is blue, get's green when the mouse hovers over it, and
# white when it is pressed:
-
-.button b1 shape=blueshape over=greenshape press=whiteshape
+.button b1 shape=blueshape over=greenshape press=whiteshape #TODO
# button where the button position is not identical to the active area:
-
-.button b2 area=activearea shape=blueshape over=greenshape press=whiteshape
+.button b2 area=activearea shape=blueshape over=greenshape press=whiteshape #TODO
# (if area is not set, it's the same as shape)
# the above put into use: pop up a window if the mouse cursor enters a certain
# area:
-
-.button b3 area=activearea shape=emptyshape over=window1 press=window1
+.button b3 area=activearea shape=emptyshape over=window1 press=window1 #TODO
# button characters also support positioning and cxforming characters.
# to use this, we put the characters "virtually", and then use the
# instances in the button
-
-.buttonput area1=playlogo x=300 y=400 rotate=0
-.buttonput shape1=playlogo x=400 y=400 rotate=0 red=50%
-.buttonput over1=playlogo x=400 y=400 rotate=30 red=50%
-.buttonput press1=playlogo x=500 y=500 rotate=180
-.button mybutton1 area=area1 shape=shape1 over=over1 press=press1
+.buttonput area1=playlogo x=300 y=400 rotate=0 #TODO
+.buttonput shape1=playlogo x=400 y=400 rotate=0 red=50% #TODO
+.buttonput over1=playlogo x=400 y=400 rotate=30 red=50% #TODO
+.buttonput press1=playlogo x=500 y=500 rotate=180 #TODO
+.button mybutton1 area=area1 shape=shape1 over=over1 press=press1: #TODO
#[...actionscript...]
.end
# fonts
# -----
-
-#only supported via other tools (lib/examples/makefonts) at the moment.
-
.font font1 "myfont.swf"
+.font font1 "myfont.ttf"
+.font font1 "myfont.pfa"
# text fields
# -----------
-
-#(these are scalable vector objects just like shapes)
-.text mytext1 "I am a happy little scroll message" color=blue size=100% font=font1
-#TODO: clipping
+.text mytext1 font=font1 text="I am a happy little scroll message" color=blue size=100%
# edittext
# --------
-
#(field where the flash animation can get input from the user)
.font helvetica "helvetica-bold.swf"
-.edittext edittext1 text="Type something here" color=blue maxlength=200 font=helvetica size=24 width=320 height=200
+.edittext edittext1 text="Type something here" color=blue maxlength=200 font=helvetica size=24 width=320 height=200 #TODO
# width/height: dimensions of the box
# text: The text which appears initally in the box, and can be overwritten by the user
# maxlength: max. length of the text the user can type
# actionscript
# ------------
-#simplified:
-
.action:
- stop spr1
- setproperty spr1._visible 1 #TODO: spr1._visible=1?
-.end
-
-#full:
-
-.action opcodes:
- settarget "spr1"
- stop
- settarget ""
- push "spr1"
- push _visible
- push 1
- setproperty
- end
-.end
-
-#simplified:
-
-.button playbutton2 shape=obj1 opcodes:
- press: play spr1
- release: stop spr1
-.end
-
-#full:
-
-.button playbutton3 shape=obj1 opcodes:
- press:
- settarget "spr1"
- play
- settarget ""
- end
- # [...]
+ _root.play();
.end
-# todo: mx initaction, placeobject2 initclip
-
# depth control
# -------------------
-
# .put, .change, .qchange, .jump, .startclip take before and after parameters,
# which can be used to specify the depth of an object
-.put o1=obj1
-.put o2=obj1 below=o1 x=50
-.frame
-.change o1
-.change o2 above=o1 x=50
+.put o1=obj1 #TODO
+.put o2=obj1 below=o1 x=50 #TODO
+.frame #TODO
+.change o1 #TODO
+.change o2 above=o1 x=50 #TODO
# newline conventions
# -------------------
.end # end of first file
-# ==================================================================================
-#
-# Ok, now for some actual examples
-#
-# ==================================================================================
-
-# scroll1.sc
-#
-# This example scrolls a single line of text from the bottom to the top, with
-# a background image
-#
-
-.flash bbox=200x200 fps=25 version=6 name="scroll1.swf"
-
-.jpeg background "panorama.jpg"
-
-.font helvetica-bold "helvetica-bold.swf"
-.text title1 "I am a happy little scroll message" color=blue font=helvetica-bold size=100%
-
-.put background x=0 y=0
-
-.frame 1
-.put obj1=title1 x=0 y=200 # As text box positions are specified at the upper left corner, this
- # places the text just below the bottom.
-# (.put title1 is actually .put title1=title1 (i.e. the instance has the same name as the character)
-
-.frame 200
- #
- # "change" moves the object to the new position, _interpolating_ in the frames between.
- # Do we also need a command for abruptly changing position (omitting interpolation)?
- #
-.change obj1 x=0 y-=12 # Now move the text up until it disappears at the top, in 40 frames
-
-# to scroll horizontally, we would have modified the x instead of the y coordinate, and scrolled to -200
-# (assuming the text is < 200 pixels)
-
-.end
-
-# ==================================================================================
-
-# scroll2.sc
-#
-# This example now also fades the text in and out again
-#
-
-.flash bbox=200x200 fps=25 version=6 name="scroll2.swf"
-.jpeg background "panorama.jpg"
-
-#create some text for a title and credits
-
-.font helvetica "helvetica-bold.swf"
-.text title1 "ChooChoo Train" color=blue font=helvetica size=100%
-
-# move from bottom to top. Fade it in on the way,
-# then fade it out again.
-# TODO: the following looks like fading only if the background is black. Add alpha channel support.
-.put obj1=title1 x=0 y=200 luminance=0%
-.frame 100
- .change obj1 luminance=100%
-.frame 200
- .change obj1 y-=12 luminance=0%
-
-.end
-
-# simpleviewer.sc
-#
-# Create the simple_viewer.flash file used in SWFTools.
-
-.flash bbox=1024x768 version=4 fps=25 name="simple_viewer.swf"
-.frame 1
-.swf leftshape "left.fig"
-.swf rightshape "right.fig"
-
-.sprite viewport
-.end
-
-.action
- stop viewport
- setvariable "/subtitle" ""
-.end
-
-.buttonput left=leftshape luminance=50%
-.buttonput lefthover=leftshape luminance=75%
-.buttonput leftpress=leftshape luminance=100%
-.button leftbutton shape=left over=lefthover press=leftpress
- release:
- previousframe viewport
-.end
-
-.buttonput right=rightshape x=20 luminance=50%
-.buttonput righthover=rightshape x=20 luminance=75%
-.buttonput rightpress=rightshape x=20 luminance=100%
-.button rightbutton shape=right over=righthover press=rightpress
- release:
- nextframe viewport
-.end
-
-.font arial "arial.swf"
-.edittext subtitlebox width=826 height=160 color=black variable="/:subtitle" font=arial size=24
-
-.put viewport
-.put leftbutton
-.put rightbutton
-.put subtitlebox x=40
-
-.end
-
-# boxlayers.sc
-# test "above"
-
-.flash bbox=400x300 version=4 fps=50 name="boxLayers.swf"
-
-.box box1 width=100 height=100 color=white fill
-.box box2 width=100 height=100 color=white fill
-
-.frame 0
- .put box1 x=30 y=10 blue=0 red=0 luminance=50
- .put box2 x=60 y=40 green=0 red=0 luminance=50
-.frame 100
- .jump box1 above=box2
-.frame 200
- .jump box2 above=box1
-.end
-
-# ---------------------- everything below this line should actually be working ----------------------
-
-
-# boxes.sc
-#
-# Do things with rectangles.
-
-.flash bbox=autocrop version=6 fps=50 name="boxes.swf" compress
-
- .box box1 width=100 height=100 color=red fill #filled red box
- .box box2 width=100 height=100 color=white #white hollow frame
- .box box3 width=100 height=100 color=green line=10 fill=blue #filled blue box, with thick green border
-
-.frame 0
- .put box1 x=30 scalex=30
- .put box2 x=30 scalex=30
- .put box3 x=30 scalex=30
-.frame 100
- .change box1 x+=300 scalex=100
- .change box2 y+=300 scalex=100
- .change box3 x+=300 y-=300 scalex=100
-.frame 150
- .del box1
- .del box2
- .del box3
-.end
-
-# monkey.sc
-#
-
-.flash bbox=autocrop version=4 fps=50 name="monkey.swf"
-
- .swf island "island.swf"
- .swf monkey "monkey4.swf"
- .put island
- .point leftfoot 45 177
- .point rightfoot 138 177
- .frame 0 .put monkey 160 160
- .frame 20 .change monkey 160 160
- .frame 30 .change monkey 160 122
- .frame 35 .change monkey 160 112
- .frame 40 .change monkey 160 122
- .frame 50 .change monkey 160 160
-
- .frame 70 .change monkey 205 337 pin=leftfoot rotate=0
- .frame 90 .change monkey rotate=30
- .frame 100 .change monkey rotate=30
- .frame 120 .change monkey rotate=0
- .frame 122 .change monkey 298 337 pin=rightfoot rotate=0
- .frame 140 .change monkey rotate=-30
- .frame 150 .change monkey rotate=-30
- .frame 170 .change monkey rotate=0
-.end
-
-# cxform.sc
-#
-# Try color transforms
-
-.flash name="cxform.swf" version=5
-
- .swf s1 "photo.swf"
-
- .put s1 x=50 y=50 scalex=110 scaley=110
- .frame 100
- .change s1 x=0 y=0 scalex=210 scaley=210 red=-1+255 green=-1+255 blue=-1+255 #invert
- .frame 200
- .change s1 x=100 y=50 scalex=110 scaley=110 red=0 green=+0 blue=+0 #remove red
- .frame 300
- .change s1 x=0 y=0 scalex=210 scaley=210 red=+0 green=2 blue=-1+255 #amplify green, invert blue
- .frame 400
- .change s1 x=50 y=100 scalex=110 scaley=110 red=2-128 green=-2+255 blue=+0.7+40 #alien glow
- .frame 500
- .change s1 x=0 y=0 scalex=210 scaley=210 red=8-1024 green=8-1024 blue=8-1024 #palette reduce
- .frame 600
- .change s1 x=0 y=0 scalex=210 scaley=210 red=+0 green=+0 blue=+0 #back to normal
- .frame 700
- .change s1 x=105 y=105 scalex=0 scaley=0 luminance=0 #fadeout
-.end
-
-# transparency.sc
-#
-# Test transparency
-
-.flash bbox=200x200 version=5 fps=25 name="transparency.swf"
-
-.box box1 90 90 color=yellow fill=blue line=5
-.box box2 90 90 color=white fill=red line=5
-
-.put b1=box1 75 75 rotate=0
-.put b2=box1 75 75 rotate=90
-.put b3=box1 75 75 rotate=180
-.put b4=box1 75 75 rotate=270
-.put box2 30 30 alpha=100%
-.frame 300
-.change b1 rotate+=360
-.change b2 rotate+=360
-.change b3 rotate+=360
-.change b4 rotate+=360
-.change box2 alpha=0%
-.end
-
-
-# points.sc
-#
-# Test points, pivots, pins
-
-.flash version=5 fps=20 name="points.swf"
-
-.box box 90 90 color=white fill=red line=5
-.point center 45 45
-.point corner1 0 0
-.point corner2 90 0
-.point corner3 90 90
-.point corner4 0 90
-
-.put b1a=box x=90 y=90 pin=center
-.put b1b=box x=90 y=90 pin=center alpha=50%
-# OR: .put b1=box x=90 y=90 pin=(45,45) rotate=0
-
-.put b2=box x=90 y=90 pin=corner1 alpha=75% blue=+128 red=0.2
-.put b3=box x=90 y=90 pin=corner2 alpha=75% blue=+128 red=0.2
-.put b4=box x=90 y=90 pin=corner3 alpha=75% blue=+128 red=0.2
-.put b5=box x=90 y=90 pin=corner4 alpha=75% blue=+128 red=0.2
-
-.frame 100
-.change b1a rotate-=720
-.change b1b rotate+=720
-.change b2 rotate+=360
-.change b3 rotate-=360
-.change b4 rotate+=360
-.change b5 rotate-=360
-
-.end
-
-# clipping.sc
-#
-# Test clipping
-
-.flash name="clip.swf" fps=25
- .sprite s1 # this just constructs a colorful object "s1"
- .box b1 40 40 color=red fill=violet line=10
- .box b2 40 40 color=blue fill=green line=10
- .box b3 40 40 color=yellow fill=cyan line=10
- .box b4 40 40 color=white fill=black line=10
- .put b1 0 0
- .put b2 60 0
- .put b3 60 60
- .put b4 0 60
- .end
-
- # the line and fill colors of the circle don't actually do anything-
- # as it's used for clipping only it's shape matters
- .circle c1 80 color=blue fill=green
-
- .startclip c1 x=-160 y=-160 #c1 clips...
- .put s1 # ...the sprite s1
- .end
-
-.frame 200
- .change c1 x=160 y=160 # movement doesn't change the clipping property
- .change s1 rotate=5
-
-.end
-
-# fonts.sc
-#
-# fonts&text
-
-.flash name="fonts.swf"
- .font courier "Courier.swf"
- .font helvetica "Helvetica.swf"
- .text abc text="abcdefghijklmnopqrstuvwxyz" font=courier size=100% color=blue
- .text abc2 text="abcdefghijklmnopqrstuvwxyz" font=helvetica size=100% color=red
- .put abc
- .put abc2 y=200
-.end
-
-
-# shear.sc
-#
-# Shearing
-
-.flash bbox=300x200:-30 name="shear.swf" fps=25
- .font helvetica "Helvetica.swf"
- .text text text="Shear" font=helvetica size=100% color=yellow
- .put t0=text y=150 alpha=0% shear=0
- .put t1=text y=150 alpha=0% shear=1
- .put t2=text y=150 alpha=0% shear=2
- .put t3=text y=150 alpha=0% shear=3
- .put t4=text y=150 alpha=0% shear=4
- .put t5=text y=150 alpha=0% shear=5
- .put t6=text y=150 alpha=0% shear=6
- .put t7=text y=150 alpha=0% shear=7
- .put t8=text y=150 alpha=0% shear=8
- .put t9=text y=150 alpha=0% shear=9
- .frame 50
- .change t0 alpha=40% shear=0
- .change t1 alpha=40% shear=0
- .change t2 alpha=40% shear=0
- .change t3 alpha=40% shear=0
- .change t4 alpha=40% shear=0
- .change t5 alpha=40% shear=0
- .change t6 alpha=40% shear=0
- .change t7 alpha=40% shear=0
- .change t8 alpha=40% shear=0
- .change t9 alpha=40% shear=0
- .frame 100
- .change t0 .change t1 .change t2 .change t3 .change t4
- .change t5 .change t6 .change t7 .change t8 .change t9
- .frame 150
- .change t0 alpha=0% shear=-9
- .change t1 alpha=0% shear=-8
- .change t2 alpha=0% shear=-7
- .change t3 alpha=0% shear=-6
- .change t4 alpha=0% shear=-5
- .change t5 alpha=0% shear=-4
- .change t6 alpha=0% shear=-3
- .change t7 alpha=0% shear=-2
- .change t8 alpha=0% shear=-1
- .change t9 alpha=0% shear=-0
-.end
-
-# sound.sc
-#
-# Sound effects
-
-.flash name="sound.swf" fps=25
-.sound loco "LocoStart.wav"
-.sound whistle "Whistle.wav"
-
-.frame 0
- .play loco
-.frame 25
- .stop loco
- .play whistle loop=20
-.frame 200
- .stop whistle
-.end
-
-
-# outline.sc
-#
-# Outlines /Fillings
-
-.flash name="outline.swf"
-
- .outline box:
- moveTo 0,0
- lineTo 100,0
- lineTo 100,100
- lineTo 0,100
- lineTo 0,0
- .end
-
- .font arial "Arial.swf"
-
- .textshape abc font="arial" text="Hello World"
-
-# .gradient bluegreen:
-# 0% blue
-# 50% green
-# 100% red
-# .end
-
- .filled fabc outline=box fill=#ff6633 line=5 color=#7799ff
- .filled fbox outline=abc fill=#ff6633 line=5 color=#7799ff
-
- .put fabc
- .put fbox y=200
-.end
-
-# gradients
-.flash name="gradient.swf"
-
- .font arial "Arial.swf"
- .textshape abc font="arial" text="Hello World"
-
- .gradient bluegreen:
- 0% blue
- 50% green
- 100% red
- .end
-
- .gradient sunshine radial:
- 0% white
- 50% yellow
- 100% red
- .end
-
- .filled fbox outline=abc fill=bluegreen line=1 color=#7799ff
- .filled fbox2 outline=abc fill=sunshine line=1 color=#7799ff
-
- .put fbox
- .put fbox2 y=200
-.end
-
-# actions
-.flash name="action.swf"
-
- .box mybox width=100 height=100 fill=green
-
- .action:
- {
- _root.stop();
- }
- .end
-
-.end
-