BEGIN { $| = 1; print "1..12\n"; } END {print "not ok 1\n" unless $loaded;} use SWF::Element; use SWF::File; use SWF::Parser; $loaded=1; eval{ $new = SWF::File->new('test.swf', Version=>6); }; print "not " if $@; print "ok 1\n"; eval { $new->FrameSize(0, 0, 6400, 4800); $new->FrameRate(20); $new->compress; }; print "not " if $@; print "ok 2\n"; eval { SWF::Element::Tag::SetBackgroundColor->new( BackgroundColor => [ Red => 255, Green => 255, Blue => 255, ] )->pack($new); SWF::Element::Tag::DefineShape3->new( ShapeID => 1, ShapeBounds => [ Xmin => -1373, Ymin => -1273, Xmax => 1313, Ymax => 1333, ], Shapes => [ FillStyles => [ [ FillStyleType => 0, Color => [ Red => 255, Green => 0, Blue => 0, Alpha => 255, ] ] ], ShapeRecords => [ [ MoveDeltaX => -30, MoveDeltaY => -1240, FillStyle0 => 1, ], [ ControlDeltaX => 542, ControlDeltaY => 0, AnchorDeltaX => 384, AnchorDeltaY => 372, ], [ ControlDeltaX => 384, ControlDeltaY => 372, AnchorDeltaX => 0, AnchorDeltaY => 526, ], [ ControlDeltaX => 0, ControlDeltaY => 526, AnchorDeltaX => -384, AnchorDeltaY => 372, ], [ ControlDeltaX => -384, ControlDeltaY => 372, AnchorDeltaX => -542, AnchorDeltaY => 0, ], [ ControlDeltaX => -542, ControlDeltaY => 0, AnchorDeltaX => -384, AnchorDeltaY => -372, ], [ ControlDeltaX => -384, ControlDeltaY => -372, AnchorDeltaX => 0, AnchorDeltaY => -526, ], [ ControlDeltaX => 0, ControlDeltaY => -526, AnchorDeltaX => 384, AnchorDeltaY => -372, ], [ ControlDeltaX => 384, ControlDeltaY => -372, AnchorDeltaX => 542, AnchorDeltaY => 0, ], ], ], )->pack($new); SWF::Element::Tag::FrameLabel->new( Name => 'TEST SWF', )->pack($new); SWF::Element::Tag::PlaceObject2->new( Flags => 6, Depth => 2, CharacterID => 1, Matrix => [ ScaleX => 1, ScaleY => 1, RotateSkew0 => 0, RotateSkew1 => 0, TranslateX => 3200, TranslateY => 2400, ], )->pack($new); SWF::Element::Tag::ShowFrame->new( )->pack($new); SWF::Element::Tag::End->new( )->pack($new); $new->close; }; print "not " if $@; print "ok 3\n"; eval { $p = SWF::Parser->new( 'header-callback' =>\&header, 'tag-callback' =>\&tag ); }; print "not " if $@; print "ok 4\n"; $tagtest=6; $labelf=0; $p->parse_file('test.swf'); print "not " unless $labelf; print "ok $tagtest\n"; unlink 'test.swf'; sub header { my ($self, $signature, $version, $length, $xmin, $ymin, $xmax, $ymax, $framerate, $framecount ) = @_; print "not " if $signature ne 'CWS' or $version != 6 or $framerate != 20; print "ok 5\n"; } sub tag { my ($self, $tagno, $length, $datastream ) = @_; my $element=SWF::Element::Tag->new(Tag=>$tagno, Length=>$length); eval { $element->unpack($datastream); }; print "not " if ($@); print "ok $tagtest\n"; $tagtest++; $labelf=1 if (ref($element) =~/FrameLabel/ and $element->Name eq 'TEST SWF'); }