#!/usr/bin/perl
use strict;

use SWF qw(:ALL);
use SWF::Constants qw(:Fill);

my $g = new SWF::Gradient;
$g->addEntry(0,0,0,0);
$g->addEntry(0.1,0xff,0x99,0);
$g->addEntry(0.5,0x66,0,0);

my $s1 = new SWF::Shape();
$s1->setLine(40, 0x7f, 0, 0);
my $f1=$s1->addFill($g,SWFFILL_LINEAR_GRADIENT);
$f1->scaleTo(0.02,0.3);
$f1->moveTo(40,40);
$s1->setRightFill($f1);
$s1->drawLine(50,0);
$s1->drawLine(0, 30);
$s1->drawCurveTo(0, 80, 0, 0);


my $s2 = new SWF::Shape();
$s2->setLine(40, 0x7f, 0, 0);
$s2->addFill($g, SWFFILL_RADIAL_GRADIENT);
$s2->setRightFill($s2->addFill($g, SWFFILL_RADIAL_GRADIENT));
$s2->drawLine(50,0);
$s2->drawLine(0, 30);
$s2->drawCurveTo(0, 80, 0, 0);

my $s3 = new SWF::Shape();   
$s3->setLine(40, 0x7f, 0, 0);
my $f3=$s3->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f3->scaleTo(0.1,0.1);
$f3->moveTo(20,20);
$f3->skewXTo(-0.5);
$s3->setRightFill($f3);
$s3->drawLine(50,0); 
$s3->drawLine(0, 30);
$s3->drawCurveTo(0, 80, 0, 0);

my $s4 = new SWF::Shape();
$s4->setLine(40,0,0x99,0);
my $f4=$s4->addFill($g,SWFFILL_LINEAR_GRADIENT);
$f4->scaleTo(0.02,0.3);
$f4->moveTo(40,40);
$s4->setRightFill($f4);
$s4->drawLine(50,0);
$s4->drawLine(0, 20);
$s4->drawLine(-30, 0);
$s4->drawLine(0, -10);
$s4->drawLine(60, 0);
$s4->drawCurveTo(0, 80, 0, 0);

my $s5 = new SWF::Shape();
$s5->setLine(40,0,0x99,0);
$s5->addFill($g, SWFFILL_RADIAL_GRADIENT);
$s5->setRightFill($s5->addFill($g, SWFFILL_RADIAL_GRADIENT));
$s5->drawLine(50,0);
$s5->drawLine(0, 20);
$s5->drawLine(-30, 0);
$s5->drawLine(0, -10);
$s5->drawLine(60, 0);
$s5->drawCurveTo(0, 80, 0, 0);

my $s6 = new SWF::Shape();
$s6->setLine(40,0,0x99,0); 
my $f6=$s6->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f6->scaleTo(0.1,0.1);
$f6->moveTo(20,20);
$f6->skewXTo(-0.5);
$s6->setRightFill($f6);
$s6->drawLine(50,0);
$s6->drawLine(0, 20);
$s6->drawLine(-30, 0);
$s6->drawLine(0, -10);
$s6->drawLine(60, 0); 
$s6->drawCurveTo(0, 80, 0, 0);

my $s7 = new SWF::Shape();
$s7->setLine(40,0,0x99,0);
my $f7=$s7->addFill($g,SWFFILL_LINEAR_GRADIENT);
$f7->scaleTo(0.02,1);   
$f7->moveTo(40,40);
$f7->rotateTo(20);
$s7->setRightFill($f7);
$s7->drawLine(50,0);  
$s7->drawLine(0, 20);
$s7->drawLine(-30, 0);
$s7->drawLine(0, -10); 
$s7->drawLine(60, 0);
$s7->drawCurveTo(0, 80, 0, 0);

my $s8 = new SWF::Shape();
$s8->setLine(40,0,0x99,0);   
my $f8=$s8->addFill($g,SWFFILL_LINEAR_GRADIENT);
$f8->scaleTo(0.02,1);
$f8->rotateTo(-30);
$f8->moveTo(40,40);
$s8->setLeftFill($f8);
$s8->drawLine(50,0);   
$s8->drawLine(0, 20);
$s8->drawLine(-30, 0);
$s8->drawLine(0, -10);
$s8->drawLine(60, 0); 
$s8->drawCurveTo(0,80, 0, 15);



my $m = new SWF::Movie();
$m->setDimension(300, 400);
$m->setRate(12.0);
my $s1_i=$m->add($s1);
my $s2_i=$m->add($s2);
my $s3_i=$m->add($s3);
my $s4_i=$m->add($s4);
my $s5_i=$m->add($s5);
my $s6_i=$m->add($s6);
my $s7_i=$m->add($s7);
my $s7_i2=$m->add($s7);
my $s7_i3=$m->add($s7);
my $s8_i=$m->add($s8);
my $s8_i2=$m->add($s8);
my $s8_i3=$m->add($s8);

$s1_i->move(10,10);
$s2_i->move(100,10);
$s3_i->move(190,10);
$s4_i->move(10,80);
$s5_i->move(100,80);    
$s6_i->move(190,80);

$s7_i->move(10,150);
$s7_i2->move(10,250);
$s7_i3->move(100,270);

$s8_i->move(10,200);
$s8_i2->move(10,300);
$s8_i3->move(100,320);

$m->nextFrame();

print "Content-type: application/x-shockwave-flash\n\n";
$m->output();

#$m->save("$0.swf");
