Thanks Jesse, this was a very good idea.....

On 8/7/07, Jesse Graupmann <[EMAIL PROTECTED]> wrote:
>
> Another version using _xmouse to get a Stage.width factor so you can see
> easing via onMouseMove.
>
> Nothing extra needed in this example - just copy/paste.
>
> - JG
>
>
>
>
>
> function drawArc ( mc, x, y, radius, arc, startAngle, yRadius)
> {
>         // http://www.formequalsfunction.com/downloads/drawmethods.html
>
>         if (arguments.length<5) return;
>         if (yRadius == undefined) yRadius = radius;
>         var segAngle, theta, angle, angleMid, segs, ax, ay, bx, by, cx,
> cy;
>         if (Math.abs(arc)>360) arc = 360;
>         segs = Math.ceil(Math.abs(arc)/45);
>         segAngle = arc/segs;
>         theta = -(segAngle/180)*Math.PI;
>         angle = -(startAngle/180)*Math.PI;
>         ax = x-Math.cos(angle)*radius;
>         ay = y-Math.sin(angle)*yRadius;
>         if (segs>0) {
>                 for (var i = 0; i<segs; i++) {
>                         angle += theta;
>                         angleMid = angle-(theta/2);
>                         bx = ax+Math.cos(angle)*radius;
>                         by = ay+Math.sin(angle)*yRadius;
>                         cx =
> ax+Math.cos(angleMid)*(radius/Math.cos(theta/2));
>                         cy =
> ay+Math.sin(angleMid)*(yRadius/Math.cos(theta/2));
>                         mc.curveTo(cx, cy, bx, by);
>                 }
>         }
>         return {x:bx, y:by};
> };
>
> //
> //      DRAW CIRCLE FROM OBJECT
> //
>
> function circle_draw ( obj:Object ):Void
> {
>         var mc = obj.mc;
>         mc.clear();
>         mc.moveTo ( obj.x, obj.y );
>         mc.beginFill.apply ( mc, obj.fillStyle );
>         mc.lineStyle.apply ( mc, obj.lineStyle );
>         drawArc ( mc, obj.x, obj.y, obj.radius, obj.arc, obj.startAngle,
> obj.yRadius )
> }
>
> //
> //      SHOW PERCENTAGE IN TEXT
> //
>
> function setPer ( per ):Void
> {
>         txt.text = per + ' %';
>         txt.setTextFormat(txt_fmt);
>         txt._x = Math.round(circle_holder._x - (txt._width>>1));
>         txt._y = Math.round(circle_holder._y + (circle_top.radius*2) +
> circle_top.lineStyle[0]);
> }
>
> //
> //      ADJUST TO NEW PERCENTAGE
> //
>
> function adjust_view ()
> {
>         // per
>         var margin = 20;
>         var per = Math.max( 0 , Math.min ( 1, (this._xmouse - margin) /
> (Stage.width-(margin*2))));
>         var new_arc = Math.round( -360 * per );
>
>         // update
>         if ( new_arc != dest_arc )
>         {
>                 dest_arc = new_arc;
>                         circle_holder.onEnterFrame = function()
>                         {
>                                 cur_arc += (dest_arc - cur_arc) * .1 ;
>                                 circle_top.arc = cur_arc;
>                                 circle_draw ( circle_top ); // circle
>                                 setPer (
> Math.round(Math.abs(circle_top.arc)/360*100) ); // txt
>                                 if ( cur_arc == dest_arc ) delete
> circle_holder.onEnterFrame;
>                         }
>         }
> }
>
>
> //
> //      CREATE
> //
>
> function INIT()
> {
>
>         // circle
>         circle_holder = this.createEmptyMovieClip( "circle_holder", 20 );
>         cur_arc = 0;
>         dest_arc = 0;
>
>         // top circle
>         circle_top = {
>                 mc: circle_holder.createEmptyMovieClip( "mc", 40 ),
>                 x:0,
>                 y:0,
>                 radius:50,
>                 arc: 0,
>                 startAngle: 90,
>                 yRadius: 50,
>                 lineStyle: [ 15, 0xFFFFFF, 100 ],
>                 fillStyle: [ ]
>         };
>
>         // add top glow
>         circle_top.mc.filters = [ new flash.filters.GlowFilter(0xFFFFFF,
> .8,
> 15, 15, 2, 3, false, false ) ];
>         // bottom circle
>         circle_bottom = {
>                 mc: circle_holder.createEmptyMovieClip( "mc2", 30  ),
>                 arc: 360,
>                 x: circle_top.x,
>                 y: circle_top.y,
>                 radius: circle_top.radius,
>                 startAngle: circle_top.startAngle,
>                 yRadius: circle_top.yRadius,
>                 lineStyle: [ 13, 0xFFFFFF, 20 ],
>                 fillStyle: circle_top.fillStyle
>         };
>
>         // txt
>         txt = this.createTextField("txt", 100, 100, 100, 300, 100);
>         txt.multiline = false;
>         txt.autoSize= true;
>         txt.wordWrap = false;
>         txt_fmt = new TextFormat();
>         txt_fmt.color = 0xFFFFFF;
>
>
>         // stage
>         Stage.scaleMode = 'noScale';
>         Stage.align = 'TL';
>         Stage.addListener( this );
>         bg = this.createEmptyMovieClip("bg", 10 );
>         onResize = function ()
>         {
>                 var W = Stage.width;
>                 var H = Stage.height;
>                 bg.clear();
>                 bg.beginFill(0x333333, 100);
>                 bg.moveTo(0, 0);
>                 bg.lineTo(W, 0);
>                 bg.lineTo(W, H);
>                 bg.lineTo(0, H);
>                 bg.lineTo(0, 0);
>                 bg.endFill();
>
>                 circle_holder._x = (W>>1);
>                 circle_holder._y = (H>>1)- circle_top.radius;
>         }
>         circle_draw ( circle_top );
>         circle_draw ( circle_bottom );
>
>         onMouseMove = adjust_view;
>         onResize();
>         setPer ( 0 );
> }
>
> INIT();
>
>
>
>
>
> _____________________________
>
> Jesse Graupmann
> www.jessegraupmann.com
> www.justgooddesign.com/blog/
> _____________________________
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Jesse
> Graupmann
> Sent: Monday, August 06, 2007 4:24 PM
> To: flashcoders@chattyfig.figleaf.com
> Subject: RE: [Flashcoders] Coding a circular preloader
>
>
> Using the arc prototype ( AS 1/2 ) from formequalsfunction draw methods;
> http://www.formequalsfunction.com/downloads/drawmethods.html and Tweener (
> AS 2 ) from http://code.google.com/p/tweener/ I put together a simple
> tween
> version of the circle.
>
> Assuming you have Tweener in the same directory, you can copy and paste
> this
> example.
>
> - JG
>
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Omar Fouad
> Sent: Monday, August 06, 2007 2:09 PM
> To: flashcoders@chattyfig.figleaf.com
> Subject: Re: [Flashcoders] Coding a circular preloader
>
> Hahaha Steven :D that was a good one ;). Thanks david.. but I don't have
> it.. i'll try to convince my boss. But i would like to know the same how
> that could be achieved like in the website.....
>
> --
> Omar M. Fouad
>
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>



-- 
Omar M. Fouad - Digital Emotions
http://www.omarfouad.net

This e-mail and any attachment is for authorised use by the intended
recipient(s) only. It may contain proprietary material, confidential
information and/or be subject to legal privilege. It should not be copied,
disclosed to, retained or used by, any other party. If you are not an
intended recipient then please promptly delete this e-mail and any
attachment and all copies and inform the sender. Thank you.
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to