let () = let mlen = 144.0 in (* Size of movie *) let slen = mlen *. 2.0 /. 3.0 in (* Size of sprite *) SWF.Ming.set_scale ~scale:20.0; (* Draw the shape *) let shape = SWF.Shape.new_shape() in let fill = SWF.Shape.add_solid_fill ~shape ~red:0x00 ~green:0xff ~blue:0x80 ~alpha:0xff in SWF.Shape.set_right_fill ~shape ~fill; SWF.Shape.move_pen_to ~shape ~x:(-.slen /. 2.0) ~y:(-.slen /. 2.0); SWF.Shape.draw_line ~shape ~dx:slen ~dy:0.0; SWF.Shape.draw_line ~shape ~dx:0.0 ~dy:slen; SWF.Shape.draw_line ~shape ~dx:(-.slen) ~dy:0.0; SWF.Shape.draw_line ~shape ~dx:0.0 ~dy:(-.slen); (* Create the sprite *) let movie_clip = SWF.MovieClip.new_movie_clip() in let display_item = SWF.MovieClip.add ~movie_clip ~block:(SWF.block_of_shape ~shape) in for j=0 to pred 24 do SWF.DisplayItem.set_color_mult ~display_item ~red:1.0 ~green:1.0 ~blue:1.0 ~alpha:(float j /. 24.0); SWF.DisplayItem.rotate_to ~display_item ~degrees:(-.360.0/.4./.24.*.(float)j); SWF.MovieClip.next_frame ~movie_clip; done; for j=0 to pred 24 do SWF.DisplayItem.set_color_mult ~display_item ~red:1.0 ~green:1.0 ~blue:1.0 ~alpha:(float(24-j)/.24.0); SWF.DisplayItem.rotate_to ~display_item ~degrees:(-.360.0/.4./.24.*.(float)j); SWF.MovieClip.next_frame ~movie_clip; done; (* Make the movie *) let movie = SWF.Movie.new_movie() in let display_item = SWF.Movie.add ~movie ~block:(SWF.block_of_movie_clip ~movie_clip) in SWF.DisplayItem.move_to ~display_item ~x:(mlen/.2.0) ~y:(mlen/.2.0); SWF.Movie.set_background ~movie ~red:0xff ~green:0xff ~blue:0xff; SWF.Movie.set_dimension ~movie ~x:mlen ~y:mlen; (* Save the movie *) let filename = "blink_ml.swf" in let st = SWF.Movie.save ~movie ~filename in Printf.printf " size of file '%s' = %d octets\n%!" filename st; ;;