{"id":641,"date":"2008-09-09T11:50:39","date_gmt":"2008-09-09T16:50:39","guid":{"rendered":"http:\/\/www.pixelwit.com\/blog\/?p=641"},"modified":"2009-08-15T18:56:58","modified_gmt":"2009-08-15T23:56:58","slug":"animated-arc-drawing","status":"publish","type":"post","link":"https:\/\/www.pixelwit.com\/blog\/2008\/09\/09\/animated-arc-drawing\/","title":{"rendered":"Animated Arc Drawing"},"content":{"rendered":"<p>A recent comment on my <a title=\"How to Draw an Oval or Ellipse\" href=\"https:\/\/www.pixelwit.com\/blog\/2008\/08\/oval-tutorial\/#comment-24419\">Oval Drawing Tutorial<\/a> asks how to &#8220;give the appearance that an oval is being drawn slowly&#8221;.  Hmmm&#8230; this sounds like a job for my handy <a title=\"Draw Arc Tutorial\" href=\"https:\/\/www.pixelwit.com\/blog\/2007\/07\/draw-an-arc-with-actionscript\/\">Arc Drawing Function<\/a>.<\/p>\n<p>Slowly drawing (or revealing) a circle can be achieved by drawing arcs of an ever-increasing size until the arc is so big that it comes back to the beginning and makes a full circle.  The same is true with ovals.  First let&#8217;s take a look at the basic code for drawing an arc of a circle<!--more-->:<\/p>\n<div class=\"codecolorer-container actionscript default\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><div class=\"actionscript codecolorer\"><span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"kw2\">function<\/span> drawArc<span class=\"br0\">&#40;<\/span>centerX, centerY, radius, startAngle, arcAngle, steps<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> twoPI = <span class=\"nu0\">2<\/span> <span class=\"sy0\">*<\/span> <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">PI<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> angleStep = arcAngle<span class=\"sy0\">\/<\/span>steps;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> xx = centerX + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">cos<\/span><span class=\"br0\">&#40;<\/span>startAngle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> radius;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> yy = centerY + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">sin<\/span><span class=\"br0\">&#40;<\/span>startAngle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> radius;<br \/>\n&nbsp; &nbsp; <span class=\"kw3\">moveTo<\/span><span class=\"br0\">&#40;<\/span>xx, yy<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">var<\/span> i=<span class=\"nu0\">1<\/span>; i<span class=\"sy0\">&lt;<\/span>=steps; i++<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw2\">var<\/span> angle = startAngle + i <span class=\"sy0\">*<\/span> angleStep;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; xx = centerX + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">cos<\/span><span class=\"br0\">&#40;<\/span>angle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> radius;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; yy = centerY + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">sin<\/span><span class=\"br0\">&#40;<\/span>angle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> radius;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw3\">lineTo<\/span><span class=\"br0\">&#40;<\/span>xx, yy<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"kw3\">lineStyle<\/span><span class=\"br0\">&#40;<\/span><span class=\"nu0\">20<\/span>, 0xFF0000<span class=\"br0\">&#41;<\/span>;<br \/>\ndrawArc<span class=\"br0\">&#40;<\/span><span class=\"nu0\">250<\/span>, <span class=\"nu0\">250<\/span>, <span class=\"nu0\">200<\/span>, <span class=\"nu0\">45<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">360<\/span>, -<span class=\"nu0\">270<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">360<\/span>, <span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span>;<br \/>\n<span class=\"co1\">\/\/<\/span><\/div><\/div>\n\n<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t\t\tid=\"fm_drawarctut_01_1425983674\"\n\t\t\tclass=\"flashmovie\"\n\t\t\twidth=\"500\"\n\t\t\theight=\"500\">\n\t<param name=\"movie\" value=\"https:\/\/www.pixelwit.com\/blog\/wp-content\/uploads\/2008\/09\/drawarctut_01.swf\" \/>\n\t<!--[if !IE]>-->\n\t<object\ttype=\"application\/x-shockwave-flash\"\n\t\t\tdata=\"https:\/\/www.pixelwit.com\/blog\/wp-content\/uploads\/2008\/09\/drawarctut_01.swf\"\n\t\t\tname=\"fm_drawarctut_01_1425983674\"\n\t\t\twidth=\"500\"\n\t\t\theight=\"500\">\n\t<!--<![endif]-->\n\t\t\n\t<!--[if !IE]>-->\n\t<\/object>\n\t<!--<![endif]-->\n<\/object>\n<p>That's sort of helpful, but we want to animate the drawing of an oval, not a circle, so we need to modify the DrawArc function to draw segments of an oval rather than segments of a circle.  Here's what the new ActionScript looks like:<\/p>\n<div class=\"codecolorer-container actionscript default\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><div class=\"actionscript codecolorer\"><span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ Split &quot;radius&quot; variable into &quot;xRradius&quot; and &quot;yRradius&quot; varianbles.<\/span><br \/>\n<span class=\"kw2\">function<\/span> drawArc<span class=\"br0\">&#40;<\/span>centerX, centerY, xRadius, yRadius, startAngle, arcAngle, steps<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> twoPI = <span class=\"nu0\">2<\/span> <span class=\"sy0\">*<\/span> <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">PI<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> angleStep = arcAngle<span class=\"sy0\">\/<\/span>steps;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Scale X and Y radius separately.<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> xx = centerX + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">cos<\/span><span class=\"br0\">&#40;<\/span>startAngle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> xRadius;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> yy = centerY + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">sin<\/span><span class=\"br0\">&#40;<\/span>startAngle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> yRadius;<br \/>\n&nbsp; &nbsp; <span class=\"kw3\">moveTo<\/span><span class=\"br0\">&#40;<\/span>xx, yy<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">var<\/span> i=<span class=\"nu0\">1<\/span>; i<span class=\"sy0\">&lt;<\/span>=steps; i++<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw2\">var<\/span> angle = startAngle + i <span class=\"sy0\">*<\/span> angleStep;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Scale X and Y radius separately.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; xx = centerX + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">cos<\/span><span class=\"br0\">&#40;<\/span>angle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> xRadius;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; yy = centerY + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">sin<\/span><span class=\"br0\">&#40;<\/span>angle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> yRadius;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw3\">lineTo<\/span><span class=\"br0\">&#40;<\/span>xx, yy<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"kw3\">lineStyle<\/span><span class=\"br0\">&#40;<\/span><span class=\"nu0\">20<\/span>, 0xFF0000<span class=\"br0\">&#41;<\/span>;<br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ Call function with new X and Y radius variables.<\/span><br \/>\ndrawArc<span class=\"br0\">&#40;<\/span><span class=\"nu0\">250<\/span>, <span class=\"nu0\">150<\/span>, <span class=\"nu0\">200<\/span>, <span class=\"nu0\">100<\/span>, <span class=\"nu0\">45<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">360<\/span>, -<span class=\"nu0\">270<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">360<\/span>, <span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span>;<br \/>\n<span class=\"co1\">\/\/<\/span><\/div><\/div>\n\n<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t\t\tid=\"fm_drawarctut_02_249522775\"\n\t\t\tclass=\"flashmovie\"\n\t\t\twidth=\"500\"\n\t\t\theight=\"300\">\n\t<param name=\"movie\" value=\"https:\/\/www.pixelwit.com\/blog\/wp-content\/uploads\/2008\/09\/drawarctut_02.swf\" \/>\n\t<!--[if !IE]>-->\n\t<object\ttype=\"application\/x-shockwave-flash\"\n\t\t\tdata=\"https:\/\/www.pixelwit.com\/blog\/wp-content\/uploads\/2008\/09\/drawarctut_02.swf\"\n\t\t\tname=\"fm_drawarctut_02_249522775\"\n\t\t\twidth=\"500\"\n\t\t\theight=\"300\">\n\t<!--<![endif]-->\n\t\t\n\t<!--[if !IE]>-->\n\t<\/object>\n\t<!--<![endif]-->\n<\/object>\n<p>Now that we can handle drawing small segments of an oval, we need to animate the process by drawing a series of larger and larger arc segments until they come together to form a complete oval.  To do this we'll use an \"onEnterFrame\" event and a new \"animateArc\" function to increment a variable and draw a series of expanding arcs.  Read the comments to follow along:<\/p>\n<div class=\"codecolorer-container actionscript default\" style=\"overflow:auto;white-space:nowrap;width:100%;height:700px;\"><div class=\"actionscript codecolorer\"><span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ H O W &nbsp; T O &nbsp; D R A W &nbsp; A N &nbsp; O V A L &nbsp; S E G M E N T &nbsp;\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"kw2\">function<\/span> drawArc<span class=\"br0\">&#40;<\/span>centerX, centerY, xRradius, yRadius, startAngle, arcAngle, steps<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> twoPI = <span class=\"nu0\">2<\/span> <span class=\"sy0\">*<\/span> <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">PI<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> angleStep = arcAngle<span class=\"sy0\">\/<\/span>steps;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> xx = centerX + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">cos<\/span><span class=\"br0\">&#40;<\/span>startAngle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> xRradius;<br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> yy = centerY + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">sin<\/span><span class=\"br0\">&#40;<\/span>startAngle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> yRadius;<br \/>\n&nbsp; &nbsp; <span class=\"kw3\">moveTo<\/span><span class=\"br0\">&#40;<\/span>xx, yy<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">for<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">var<\/span> i=<span class=\"nu0\">1<\/span>; i<span class=\"sy0\">&lt;<\/span>=steps; i++<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw2\">var<\/span> angle = startAngle + i <span class=\"sy0\">*<\/span> angleStep;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; xx = centerX + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">cos<\/span><span class=\"br0\">&#40;<\/span>angle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> xRradius;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; yy = centerY + <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">sin<\/span><span class=\"br0\">&#40;<\/span>angle <span class=\"sy0\">*<\/span> twoPI<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">*<\/span> yRadius;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw3\">lineTo<\/span><span class=\"br0\">&#40;<\/span>xx, yy<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ O V A L &nbsp; P R O P E R T I E S \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"kw2\">var<\/span> cntrX = <span class=\"nu0\">250<\/span>; &nbsp; &nbsp;<span class=\"co1\">\/\/ Center of the oval on the X axis.<\/span><br \/>\n<span class=\"kw2\">var<\/span> cntrY = <span class=\"nu0\">150<\/span>; &nbsp; &nbsp;<span class=\"co1\">\/\/ Center of the oval on the Y axis.<\/span><br \/>\n<span class=\"kw2\">var<\/span> radiusX = <span class=\"nu0\">200<\/span>; &nbsp;<span class=\"co1\">\/\/ Width of the oval.<\/span><br \/>\n<span class=\"kw2\">var<\/span> radiusY = <span class=\"nu0\">100<\/span>; &nbsp;<span class=\"co1\">\/\/ Height of the oval.<\/span><br \/>\n<span class=\"kw2\">var<\/span> angle = -<span class=\"nu0\">70<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">360<\/span>;<span class=\"co1\">\/\/ Angle of the first point on the oval.<\/span><br \/>\n<span class=\"kw2\">var<\/span> arc = <span class=\"nu0\">360<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">360<\/span>; &nbsp;<span class=\"co1\">\/\/ How big the arc will be when it's done.<\/span><br \/>\n<span class=\"kw2\">var<\/span> endSides = <span class=\"nu0\">100<\/span>; <span class=\"co1\">\/\/ How many sides the arc will have when complete.<\/span><br \/>\n<span class=\"kw2\">var<\/span> lineWidth = <span class=\"nu0\">20<\/span>; <span class=\"co1\">\/\/ Width of the line.<\/span><br \/>\n<span class=\"kw2\">var<\/span> lineColor = 0xFF0000;<span class=\"co1\">\/\/ Color of the line.<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ A N I M A T I O N &nbsp; P R O P E R T I E S \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"kw2\">var<\/span> count = <span class=\"nu0\">0<\/span>; &nbsp; &nbsp; &nbsp;<span class=\"co1\">\/\/ Tracks how long the animation has been going.<\/span><br \/>\n<span class=\"kw2\">var<\/span> frames = <span class=\"nu0\">150<\/span>; &nbsp; <span class=\"co1\">\/\/ Sets how long the animation will last.<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ <\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ A N I M A T E &nbsp; G R O W I N G &nbsp; O V A L &nbsp; S E G M E N T &nbsp;\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"kw2\">function<\/span> animateArc<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Remove old arc segment.<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">clear<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Reset line width and color after being cleared.<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">lineStyle<\/span><span class=\"br0\">&#40;<\/span>lineWidth, lineColor<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Note that a frame has passed.<\/span><br \/>\n&nbsp; &nbsp; count++;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Determine how far along the animation is.<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> ratio = count<span class=\"sy0\">\/<\/span>frames;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Determine how big the arc is.<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> arcRatio = arc <span class=\"sy0\">*<\/span> ratio;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Determine how many sides the arc segment has.<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw2\">var<\/span> sidesRatio = <span class=\"kw3\">Math<\/span>.<span class=\"kw3\">floor<\/span><span class=\"br0\">&#40;<\/span>endSides <span class=\"sy0\">*<\/span> ratio<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Draw the arc with its newly determined properties.<\/span><br \/>\n&nbsp; &nbsp; drawArc<span class=\"br0\">&#40;<\/span>cntrX, cntrY, radiusX, radiusY, angle, arcRatio, sidesRatio<span class=\"br0\">&#41;<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/<\/span><br \/>\n&nbsp; &nbsp; <span class=\"co1\">\/\/ Stop animating if the arc is complete.<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span>count == frames<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw3\">onEnterFrame<\/span> = <span class=\"kw2\">null<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ Start animating the drawing of the oval.<\/span><br \/>\n<span class=\"kw3\">onEnterFrame<\/span> = animateArc;<br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ <\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/ R E S E T &nbsp; A N I M A T I O N &nbsp; O N &nbsp; M O U S E &nbsp; C L I C K &nbsp;\/\/\/<\/span><br \/>\n<span class=\"co1\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span><br \/>\n<span class=\"kw3\">onMouseDown<\/span> = <span class=\"kw2\">function<\/span> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; count = <span class=\"nu0\">0<\/span>;<br \/>\n&nbsp; &nbsp; <span class=\"kw3\">onEnterFrame<\/span> = animateArc;<br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><br \/>\n<span class=\"co1\">\/\/<\/span><\/div><\/div>\n\n<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t\t\tid=\"fm_animatedoval_01_2064075644\"\n\t\t\tclass=\"flashmovie\"\n\t\t\twidth=\"500\"\n\t\t\theight=\"300\">\n\t<param name=\"movie\" value=\"https:\/\/www.pixelwit.com\/blog\/wp-content\/uploads\/2008\/09\/animatedoval_01.swf\" \/>\n\t<!--[if !IE]>-->\n\t<object\ttype=\"application\/x-shockwave-flash\"\n\t\t\tdata=\"https:\/\/www.pixelwit.com\/blog\/wp-content\/uploads\/2008\/09\/animatedoval_01.swf\"\n\t\t\tname=\"fm_animatedoval_01_2064075644\"\n\t\t\twidth=\"500\"\n\t\t\theight=\"300\">\n\t<!--<![endif]-->\n\t\t\n\t<!--[if !IE]>-->\n\t<\/object>\n\t<!--<![endif]-->\n<\/object>\n<p>And there you have it, one animation of an oval being drawn.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Flash ActionScript tutorial explaining how to animate the drawing of an oval using an onEnterFrame event.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[8],"tags":[23,45,36,37],"class_list":["post-641","post","type-post","status-publish","format-standard","hentry","category-flash","tag-actionscript","tag-draw","tag-swfs","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/posts\/641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/comments?post=641"}],"version-history":[{"count":0,"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/posts\/641\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/media?parent=641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/categories?post=641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pixelwit.com\/blog\/wp-json\/wp\/v2\/tags?post=641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}