Dear Kerry Hi I am really apreciate u , one of my bigest problem is when i want create point , my boss want to have an array of point that has distance between -10000 to 10000 or more than it because when the user want scale graph i should use that stoored point to calculate new graph , but the prolem is when i want to store data in array this loop take a lot of time and flash dont do anything until the loop finished , and after 15 s it get me eror of time or hang the program and close it !!!! in my program i should fine soulotion to draw online point plz help me
--- On Mon, 8/22/11, Kerry Thompson <al...@cyberiantiger.biz> wrote: From: Kerry Thompson <al...@cyberiantiger.biz> Subject: Re: [Flashcoders] array problem,loop.plot To: "Flash Coders List" <flashcoders@chattyfig.figleaf.com> Date: Monday, August 22, 2011, 3:34 PM Sure. I knew there would be bugs in my code :-) Actually, you have so many points, you probably don't need to use curveTo(). lineTo() would probably work for you, and it just takes two parameters. Here's a class I wrote that draws something. It's probably not what you want, but it works, at least. You can take it from here. (I created this class in a Flex AS3 project--that's why I defined the stage size in line 6. If you do it in Flash, you won't need that--just set the stage size to what you want). Cordially, Kerry Thompson package { import flash.display.Sprite; import flash.display.Graphics; [SWF(width='1024',height='768',backgroundColor='#FFFFFF',frameRate='24')] public class GraphTst extends Sprite { private var pointX:Vector.<Number>; //vectors are much faster than arrays private var pointY:Vector.<Number>; private var ndx:int = 0; private var len:int; public function GraphTst() { init(); createPoints(); drawGraph(); } private function init():void { // You have to create the vector in a new code line pointX = new Vector.<Number>(); pointY = new Vector.<Number>(); } private function createPoints():void { // first fill the vectors for (var i:Number= -100; i<100; i++) { pointX[ndx]=i + 100; pointY[ndx]=5*Math.sin(20*i); ndx++; } } private function drawGraph():void { // prepare to draw the graph graphics.lineStyle(2, 0X000000); //set the line to 2 pixels wide, black len = pointX.length - 1; // Now draw the graph graphics.moveTo(pointX[0], pointY[0]); for (ndx = 1; ndx< len; ndx++) { //trace("ndx: " + ndx); graphics.lineTo(pointX[ndx], pointY[ndx]); } } } } On Mon, Aug 22, 2011 at 2:08 PM, nasim hhhhh <iranebah...@yahoo.com> wrote: > Dear Kerry > I 'am really appreciate u ,but the first problem that i didnt use curve to is > it's parameter > it needs 4 parameter and i cant guess how to define curve point > do u have any idea plz tell me > > --- On Mon, 8/22/11, Kerry Thompson <al...@cyberiantiger.biz> wrote: > > From: Kerry Thompson <al...@cyberiantiger.biz> > Subject: Re: [Flashcoders] array problem,loop.plot > To: "Flash Coders List" <flashcoders@chattyfig.figleaf.com> > Date: Monday, August 22, 2011, 9:41 AM > > Gerry and Henrik have the right answer. Your computer monitor isn't > capable of displaying 20 million points, and Flash will hang, as you > have found out. > > This is untested e-mail AS3, but I would do it something like this: > > var pointX:Vector.<Number>; //vectors are much faster than arrays > var pointY:Vector.<Number>; > > // You have to create the vector in a new code line > pointX = new Vector.<Number>(); > pointY = new Vector.<Number>(); > ndx:int = 0; > len:int; > > // first fill the vectors > for (var i:Number= -10000 ;i<10000;i+=.1) > { > ndx++; > pointX[ndx]=i; > pointY[ndx]=5*Math.sin(20*i); > } > > // prepare to draw the graph > graphics.lineStyle(2, 0X000000); //set the line to 2 pixels wide, black > graphics.moveTo(pointX[0], pointY[0]); // move to the starting point > len = pointX.length + 1; > > // Now draw the graph > for (x = 1; x<= len; x++) > { > graphics.curveTo(pointX[x], pointY[y]; > } > > There's more you have to do--importing the graphics package, perhaps > putting this all into a class, and so on. There are probably minor > bugs in the code you'll have to fix--this is just off the top of my > head. I think you will be much happier with performance and appearance > with something like this, though. > > Cordially, > > Kerry Thompson > > On Mon, Aug 22, 2011 at 4:49 AM, nasim hhhhh <iranebah...@yahoo.com> wrote: >> but the most problem is for loop i think flash dont do any thing until the >> loop finishde >> i need to use smal step because if the step is big the graph will be show >> like line to line , it s ugly graph >> and the distance that i use for loop is more importatnt for me i want to >> show 2*10^8 distance / i want to make point in my program and plot it one by >> one i make i plot >> i make i plot >> is there better way? > > _______________________________________________ > Flashcoders mailing list > Flashcoders@chattyfig.figleaf.com > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > _______________________________________________ > Flashcoders mailing list > Flashcoders@chattyfig.figleaf.com > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders