I think there's two calls to beginFIll?  Make sure there's only one and
it is before the moveTo.

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Carolyn Cole
Sent: Monday, April 02, 2007 7:50 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Filled Polygon



Hi!

Thanks for the advice!

If you look at the code a bit closer (I know it's a bit complex)  You
would see that the moveto is only done on the first point in the loop.

I believe the code does follow you advice as this example will show.

Suppose I have a 4 point array:
        point[0] { 1,1}
        point[1] { 2,2}
        point[2] { 3,1}
        point[3] { 1,1}

The the code would run the following commands
       moveto (1,1)
       beginFill
       lineto(2,2)
       lineto(3,1)
       lineTo(1,1)
       endFill

Which should draw a filled triangle, but all I get is the lines, no
fill.

-- Carolyn





                

                Re: Filled Polygon 




                

                Posted by: "Adam Royle" [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED] Re%3A%20Filled%20Polygon> 




                

                Mon Apr 2, 2007 7:07 am (PST) 


                Hi Carolyn,
                
                I would say that it's because you are calling
                
                graphics.moveTo 
                and 
                graphics.beginFill
                
                during your loop, whereas it should be graphics.lineTo
                
                Change your logic so that you do this (pseudo-code):
                
                clear 
                lineStyle
                
                moveTo - (starting point)
                
                beginFill
                
                loop { 
                lineTo - (each point) 
                }
                
                moveTo - (optional end point)
                
                endFill
                
                Hope this helps.
                
                Cheers, 
                Adam
                
                ----- Original Message ----- 
                From: Carolyn Cole 
                To: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>  
                Sent: Monday, April 02, 2007 11:52 PM 
                Subject: [flexcoders] Filled Polygon
                
                Hello,
                
                For some reason I can not seem to get my polygon created
by lineto to fill.
                
                The polygon gets drawn, but the fill never happens. Does
anyone have any 
                suggestions?
                
                The code I am using is bellow:
                
                recColor = 0xFF0000; 
                transp=0.5; 
                var graphics:Graphics = recShape.graphics; 
                graphics.clear(); 
                graphics.lineStyle(3,recColor,100); 
                graphics.beginFill(recColor,transp); 
                var lastPoint:Point = null; 
                for(var i:int=1; i< points.length; i++){ 
                var p1:Point = new Point() 
                p1.x = points[i-1].x; 
                p1.y = points[i-1].y; 
                var p2:Point = new Point(); 
                p2.x = points[i].x; 
                p2.y = points[i].y; 
                if (lastPoint == null){ 
                graphics.moveTo(p1.x,p1.y); 
                graphics.beginFill(recColor,transp); 
                } 
                graphics.lineTo(p2.x, p2.y); 
                lastPoint = p2;
                
                } 
                graphics.endFill();
                
                Thanks!
                
                -- Carolyn 


 

Reply via email to