actionscript 3 - Adding array-items (Shapes) to the stage -


i'm programming flash as3 file now, in as3 file create shape using points on stage (which place yourself) , fill parts in between. think i've added shape array. i'm having problems getting shape on stage after cleared stage.

code here:

var numpoints:number = 0;       //  number of points placed.                                  //  no dragging work until 7 points placed.  //  set max & min stage coordinates points can dragged, , make point diameters settable. var xmax:number = 455; var xmin:number = 5; var ymax:number = 305; var ymin:number = 5; var circlewidth:number = 10;  //  boolean variables indicate dragging happening appropriate point follows mouse //  on mouse_move event. var isdragging1:boolean = false; var isdragging2:boolean = false; var isdragging3:boolean = false; var isdragging4:boolean = false; var isdragging5:boolean = false; var isdragging6:boolean = false; var isdragging7:boolean = false;  //  drawboard rectangle on triangle drawn.  colors settable here. change size, //  change variables xmin, xmax, ymin, ymax above. var drawboard:sprite = new sprite(); drawboard.graphics.linestyle(1, 0x000000); drawboard.graphics.beginfill(0xcccccc); drawboard.graphics.drawrect(0, 0, xmax - xmin, ymax - ymin); drawboard.graphics.endfill(); drawboard.x = xmin; drawboard.y = ymin;   // array  var shapearray:array = new array();  //  add default drop shadow filter drawboard drawboard.filters = [ new dropshadowfilter() ];  //  rectangle listen mouse clicks in order construct 3 vertices of triangle. drawboard.addeventlistener(mouseevent.click, placepoint);  //  put on stage board on triangle drawn. stage.addchild(drawboard);  //  filled triangle consists of 3 lines drawn between points. updated on mouse_move once  //  dragging starts. var lines:shape = new shape(); drawboard.addchild(lines);   //  stage listen events involving dragging dragging continue work after //  mouse has rolled off of drawboard region. stage.addeventlistener(mouseevent.mouse_move, mouseupdate); stage.addeventlistener(mouseevent.mouse_up, stopdragging);  // button 2 (left) bttn_add.addeventlistener(mouseevent.click, toevoegen);  // button 3 (middle) bttn_show.addeventlistener(mouseevent.click, showit);   // adding shape array  function toevoegen(e:event):void {      // adding     shapearray.push( lines );      trace(shapearray) }  // shape show  function showit(e:event):void {      // show me now!     var shapearray:string = lines[0];  }  //  add 7 points stage not add graphics yet.  specify listeners //  @ time when placed, able drag them.  var point1:sprite = new sprite(); point1.addeventlistener(mouseevent.mouse_down, startdragging1); drawboard.addchild(point1);  var point2:sprite = new sprite(); point2.addeventlistener(mouseevent.mouse_down, startdragging2); drawboard.addchild(point2);  var point3:sprite = new sprite(); point3.addeventlistener(mouseevent.mouse_down, startdragging3); drawboard.addchild(point3);  var point4:sprite = new sprite(); point4.addeventlistener(mouseevent.mouse_down, startdragging4); drawboard.addchild(point4);  var point5:sprite = new sprite(); point5.addeventlistener(mouseevent.mouse_down, startdragging5); drawboard.addchild(point5);  var point6:sprite = new sprite(); point6.addeventlistener(mouseevent.mouse_down, startdragging6); drawboard.addchild(point6);  var point7:sprite = new sprite(); point7.addeventlistener(mouseevent.mouse_down, startdragging7); drawboard.addchild(point7);     //  reset button stop dragging, remove children of drawboard, , set numpoints 0.  btnreset.addeventlistener(mouseevent.click, reset);  function reset(evt:mouseevent):void {     var i:number;     var n:number = drawboard.numchildren;      isdragging1 = false;     isdragging2 = false;     isdragging3 = false;     isdragging4 = false;     isdragging5 = false;     isdragging6 = false;     isdragging7 = false;      point1.graphics.clear();     point2.graphics.clear();     point3.graphics.clear();     point4.graphics.clear();     point5.graphics.clear();     point6.graphics.clear();     point7.graphics.clear();      lines.graphics.clear();      numpoints = 0;     }  //  next function executed when mouse moved.  note if points not placed , nothing //  being dragged, function nothing. function mouseupdate(evt:mouseevent):void {     if (numpoints == 7) {                                if (isdragging1) {             point1.x = goodx(evt.stagex);       //  set x- & y-coordinates.  see below definition of              point1.y = goody(evt.stagey);       //      functions goodx & goody             lines.graphics.clear();             //  remove lines shape , redraw              drawlines();                        //      updated coordinates.         }         if (isdragging2) {             point2.x = goodx(evt.stagex);             point2.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }         if (isdragging3) {             point3.x = goodx(evt.stagex);             point3.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging4) {             point4.x = goodx(evt.stagex);             point4.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging5) {             point5.x = goodx(evt.stagex);             point5.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging6) {             point6.x = goodx(evt.stagex);             point6.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging7) {             point7.x = goodx(evt.stagex);             point7.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          evt.updateafterevent();     } }   /*  function chooses appropriate x-coordinate dragged point.       if thisx in draggable region, return it.  otherwise, return max or min x value,      depending on side of draggable region thisx on. */  function goodx(thisx:number):number {     if (thisx < xmin) {         return (xmin);     }     if (thisx > (xmax - circlewidth)) {         return (xmax - circlewidth);     }     return (thisx); }   //  function chooses appropriate y-coordinate dragged point in manner similar previous function.   function goody(thisy:number):number {     if (thisy < ymin) {         return (ymin);     }     if (thisy > (ymax - circlewidth)) {         return (ymax - circlewidth);     }     return thisy; }  // function manages placement of points until 7 points placed.  function placepoint(evt:mouseevent):void {     if (numpoints == 0) {         point1.graphics.beginfill(0x7777ff);         point1.graphics.drawcircle(0, 0, circlewidth/2);         point1.graphics.endfill();         point1.filters = [ new dropshadowfilter() ];         point1.x = drawboard.mousex;         point1.y = drawboard.mousey;         numpoints = 1;     }     else if(numpoints == 1) {         point2.graphics.beginfill(0x7777ff);         point2.graphics.drawcircle(0, 0, circlewidth/2);         point2.graphics.endfill();         point2.filters = [ new dropshadowfilter() ];         point2.x = drawboard.mousex;         point2.y = drawboard.mousey;         numpoints = 2;     }     else if (numpoints == 2) {         point3.graphics.beginfill(0x7777ff);         point3.graphics.drawcircle(0, 0, circlewidth/2);         point3.graphics.endfill();         point3.filters = [ new dropshadowfilter() ];         point3.x = drawboard.mousex;         point3.y = drawboard.mousey;         numpoints = 3;         lines.graphics.clear();       }      else if (numpoints == 3) {         point4.graphics.beginfill(0x7777ff);         point4.graphics.drawcircle(0, 0, circlewidth/2);         point4.graphics.endfill();         point4.filters = [ new dropshadowfilter() ];         point4.x = drawboard.mousex;         point4.y = drawboard.mousey;         numpoints = 4;         lines.graphics.clear();      }      else if (numpoints == 4) {         point5.graphics.beginfill(0x7777ff);         point5.graphics.drawcircle(0, 0, circlewidth/2);         point5.graphics.endfill();         point5.filters = [ new dropshadowfilter() ];         point5.x = drawboard.mousex;         point5.y = drawboard.mousey;         numpoints = 5;         lines.graphics.clear();      }      else if (numpoints == 5) {         point6.graphics.beginfill(0x7777ff);         point6.graphics.drawcircle(0, 0, circlewidth/2);         point6.graphics.endfill();         point6.filters = [ new dropshadowfilter() ];         point6.x = drawboard.mousex;         point6.y = drawboard.mousey;         numpoints = 6;         lines.graphics.clear();      }      else if (numpoints == 6) {         point7.graphics.beginfill(0x7777ff);         point7.graphics.drawcircle(0, 0, circlewidth/2);         point7.graphics.endfill();         point7.filters = [ new dropshadowfilter() ];         point7.x = drawboard.mousex;         point7.y = drawboard.mousey;         numpoints = 7;         lines.graphics.clear();         drawlines();     } }  //  draws 7 lines between points appropriate fill , adds drop shadow. function drawlines():void {     lines.graphics.linestyle(1, 0xff0000);     lines.graphics.beginfill(0xff7777);     lines.graphics.moveto(point1.x, point1.y);     lines.graphics.lineto(point2.x, point2.y);     lines.graphics.lineto(point3.x, point3.y);     lines.graphics.lineto(point4.x, point4.y);     lines.graphics.lineto(point5.x, point5.y);     lines.graphics.lineto(point6.x, point6.y);     lines.graphics.lineto(point7.x, point7.y);     lines.graphics.lineto(point1.x, point1.y);     lines.graphics.endfill();     lines.filters = [ new dropshadowfilter() ];     trace(lines) }  //  next functions "turn on" dragging point clicked, long 7 points have //  been placed. function startdragging1(evt:mouseevent):void {     if (numpoints == 7) {         isdragging1 = true;     } }  function startdragging2(evt:mouseevent):void {     if (numpoints == 7) {         isdragging2 = true;     } }  function startdragging3(evt:mouseevent):void {     if (numpoints == 7) {         isdragging3 = true;     } } function startdragging4(evt:mouseevent):void {     if (numpoints == 7) {         isdragging4 = true;     } }  function startdragging5(evt:mouseevent):void {     if (numpoints == 7) {         isdragging5 = true;     } }  function startdragging6(evt:mouseevent):void {     if (numpoints == 7) {         isdragging6 = true;     } }  function startdragging7(evt:mouseevent):void {     if (numpoints == 7) {         isdragging7 = true;     } }  //  turns off dragging. function called when mouse button released anywhere on stage. function stopdragging(evt:mouseevent):void {     if (numpoints == 7) {         isdragging1 = false;         isdragging2 = false;         isdragging3 = false;         isdragging4 = false;         isdragging5 = false;         isdragging6 = false;         isdragging7 = false;      } } 

the error i'm getting is

referenceerror: error #1069: kan eigenschap 0 niet vinden bij flash.display.shape en er geen standaardwaarde. @ triangledrag_fla::maintimeline/showit()

i'm not experienced in flash neither have background in advanced coding, i'm eager learn how improve myself

in advanced thank you, welcome.

ps: if have provide additional information what

correct code:

var numpoints:number = 0;       //  number of points placed.                                  //  no dragging work until 7 points placed.  //  set max & min stage coordinates points can dragged, , make point diameters settable. var xmax:number = 455; var xmin:number = 5; var ymax:number = 305; var ymin:number = 5; var circlewidth:number = 10;  //  boolean variables indicate dragging happening appropriate point follows mouse //  on mouse_move event. var isdragging1:boolean = false; var isdragging2:boolean = false; var isdragging3:boolean = false; var isdragging4:boolean = false; var isdragging5:boolean = false; var isdragging6:boolean = false; var isdragging7:boolean = false;  //  drawboard rectangle on triangle drawn.  colors settable here. change size, //  change variables xmin, xmax, ymin, ymax above. var drawboard:sprite = new sprite(); drawboard.graphics.linestyle(1, 0x000000); drawboard.graphics.beginfill(0xcccccc); drawboard.graphics.drawrect(0, 0, xmax - xmin, ymax - ymin); drawboard.graphics.endfill(); drawboard.x = xmin; drawboard.y = ymin;   // array  var shapearray:array/* of flash.display.shape */ = [] /* of flash.display.shape */; var lines:shape = new shape();  //  add default drop shadow filter drawboard drawboard.filters = [ new dropshadowfilter() ];  //  rectangle listen mouse clicks in order construct 3 vertices of triangle. drawboard.addeventlistener(mouseevent.click, placepoint);  //  put on stage board on triangle drawn. stage.addchild(drawboard);  //  filled triangle consists of 3 lines drawn between points. updated on mouse_move once  //  dragging starts.  drawboard.addchild(lines);   //  stage listen events involving dragging dragging   continue work after //  mouse has rolled off of drawboard region. stage.addeventlistener(mouseevent.mouse_move, mouseupdate); stage.addeventlistener(mouseevent.mouse_up, stopdragging);  // button 2 (left) bttn_add.addeventlistener(mouseevent.click, toevoegen);  // button 3 (middle) bttn_show.addeventlistener(mouseevent.click, showit);   // adding shape array  function toevoegen(e:event):void {      // adding     shapearray.push( lines );      trace("done that... true story") }  // shape show  function showit(e:event):void {     trace(shapearray.length);   if (!shapearray || shapearray.length == 0)     return; // nothing here    const lines:shape = shapearray[0] shape;    if (lines && ! lines.parent) { } // show     drawboard.addchild(lines)      trace() } //  add 7 points stage not add graphics yet.  specify listeners //  @ time when placed, able drag them.  var point1:sprite = new sprite(); point1.addeventlistener(mouseevent.mouse_down, startdragging1); drawboard.addchild(point1);  var point2:sprite = new sprite(); point2.addeventlistener(mouseevent.mouse_down, startdragging2); drawboard.addchild(point2);  var point3:sprite = new sprite(); point3.addeventlistener(mouseevent.mouse_down, startdragging3); drawboard.addchild(point3);  var point4:sprite = new sprite(); point4.addeventlistener(mouseevent.mouse_down, startdragging4); drawboard.addchild(point4);  var point5:sprite = new sprite(); point5.addeventlistener(mouseevent.mouse_down, startdragging5); drawboard.addchild(point5);  var point6:sprite = new sprite(); point6.addeventlistener(mouseevent.mouse_down, startdragging6); drawboard.addchild(point6);  var point7:sprite = new sprite(); point7.addeventlistener(mouseevent.mouse_down, startdragging7); drawboard.addchild(point7);     //  reset button stop dragging, remove children of drawboard, , set numpoints 0.  btnreset.addeventlistener(mouseevent.click, reset);  function reset(evt:mouseevent):void {     var i:number;     var n:number = drawboard.numchildren;      isdragging1 = false;     isdragging2 = false;     isdragging3 = false;     isdragging4 = false;     isdragging5 = false;     isdragging6 = false;     isdragging7 = false;      point1.graphics.clear();     point2.graphics.clear();     point3.graphics.clear();     point4.graphics.clear();     point5.graphics.clear();     point6.graphics.clear();     point7.graphics.clear();      //lines.graphics.clear();     drawboard.removechild(lines);     numpoints = 0;     }  //  next function executed when mouse moved.  note if points not placed , nothing //  being dragged, function nothing. function mouseupdate(evt:mouseevent):void {     if (numpoints == 7) {                                if (isdragging1) {             point1.x = goodx(evt.stagex);       //  set x- & y-coordinates.  see below definition of              point1.y = goody(evt.stagey);       //      functions goodx & goody             lines.graphics.clear();             //  remove lines shape , redraw              drawlines();                        //      updated coordinates.         }         if (isdragging2) {             point2.x = goodx(evt.stagex);             point2.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }         if (isdragging3) {             point3.x = goodx(evt.stagex);             point3.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging4) {             point4.x = goodx(evt.stagex);             point4.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging5) {             point5.x = goodx(evt.stagex);             point5.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging6) {             point6.x = goodx(evt.stagex);             point6.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          if (isdragging7) {             point7.x = goodx(evt.stagex);             point7.y = goody(evt.stagey);             lines.graphics.clear();             drawlines();         }          evt.updateafterevent();     } }   /*  function chooses appropriate x-coordinate dragged point.       if thisx in draggable region, return it.  otherwise, return max or min x value,      depending on side of draggable region thisx on. */  function goodx(thisx:number):number {     if (thisx < xmin) {         return (xmin);     }     if (thisx > (xmax - circlewidth)) {         return (xmax - circlewidth);     }     return (thisx); }   //  function chooses appropriate y-coordinate dragged point in manner similar previous function.   function goody(thisy:number):number {     if (thisy < ymin) {         return (ymin);     }     if (thisy > (ymax - circlewidth)) {         return (ymax - circlewidth);     }     return thisy; }  // function manages placement of points until 7 points placed.  function placepoint(evt:mouseevent):void {      //var point = new sprite();     //array.push(point);      if (numpoints == 0) {         point1.graphics.beginfill(0x7777ff);         point1.graphics.drawcircle(0, 0, circlewidth/2);         point1.graphics.endfill();         point1.filters = [ new dropshadowfilter() ];         point1.x = drawboard.mousex;         point1.y = drawboard.mousey;         numpoints = 1;     }     else if(numpoints == 1) {         point2.graphics.beginfill(0x7777ff);         point2.graphics.drawcircle(0, 0, circlewidth/2);         point2.graphics.endfill();         point2.filters = [ new dropshadowfilter() ];         point2.x = drawboard.mousex;         point2.y = drawboard.mousey;         numpoints = 2;     }     else if (numpoints == 2) {         point3.graphics.beginfill(0x7777ff);         point3.graphics.drawcircle(0, 0, circlewidth/2);         point3.graphics.endfill();         point3.filters = [ new dropshadowfilter() ];         point3.x = drawboard.mousex;         point3.y = drawboard.mousey;         numpoints = 3;         lines.graphics.clear();       }      else if (numpoints == 3) {         point4.graphics.beginfill(0x7777ff);         point4.graphics.drawcircle(0, 0, circlewidth/2);         point4.graphics.endfill();         point4.filters = [ new dropshadowfilter() ];         point4.x = drawboard.mousex;         point4.y = drawboard.mousey;         numpoints = 4;         lines.graphics.clear();      }      else if (numpoints == 4) {         point5.graphics.beginfill(0x7777ff);         point5.graphics.drawcircle(0, 0, circlewidth/2);         point5.graphics.endfill();         point5.filters = [ new dropshadowfilter() ];         point5.x = drawboard.mousex;         point5.y = drawboard.mousey;         numpoints = 5;         lines.graphics.clear();      }      else if (numpoints == 5) {         point6.graphics.beginfill(0x7777ff);         point6.graphics.drawcircle(0, 0, circlewidth/2);         point6.graphics.endfill();         point6.filters = [ new dropshadowfilter() ];         point6.x = drawboard.mousex;         point6.y = drawboard.mousey;         numpoints = 6;         lines.graphics.clear();      }      else if (numpoints == 6) {         point7.graphics.beginfill(0x7777ff);         point7.graphics.drawcircle(0, 0, circlewidth/2);         point7.graphics.endfill();         point7.filters = [ new dropshadowfilter() ];         point7.x = drawboard.mousex;         point7.y = drawboard.mousey;         numpoints = 7;         lines.graphics.clear();         drawlines();     } }  //  draws 7 lines between points appropriate fill , adds drop shadow. function drawlines():void {     lines.graphics.linestyle(1, 0xff0000);     lines.graphics.beginfill(0xff7777);     lines.graphics.moveto(point1.x, point1.y);     lines.graphics.lineto(point2.x, point2.y);     lines.graphics.lineto(point3.x, point3.y);     lines.graphics.lineto(point4.x, point4.y);     lines.graphics.lineto(point5.x, point5.y);     lines.graphics.lineto(point6.x, point6.y);     lines.graphics.lineto(point7.x, point7.y);     lines.graphics.lineto(point1.x, point1.y);     lines.graphics.endfill();     lines.filters = [ new dropshadowfilter() ];     trace(lines) }  //  next functions "turn on" dragging point clicked, long 7 points have //  been placed. function startdragging1(evt:mouseevent):void {     if (numpoints == 7) {         isdragging1 = true;     } }  function startdragging2(evt:mouseevent):void {     if (numpoints == 7) {         isdragging2 = true;     } }  function startdragging3(evt:mouseevent):void {     if (numpoints == 7) {         isdragging3 = true;     } } function startdragging4(evt:mouseevent):void {     if (numpoints == 7) {          isdragging4 = true;     } }  function startdragging5(evt:mouseevent):void {     if (numpoints == 7) {         isdragging5 = true;     } }  function startdragging6(evt:mouseevent):void {     if (numpoints == 7) {         isdragging6 = true;     } }  function startdragging7(evt:mouseevent):void {     if (numpoints == 7) {         isdragging7 = true;     } }  //  turns off dragging. function called when mouse button released anywhere on stage. function stopdragging(evt:mouseevent):void {     if (numpoints == 7) {         isdragging1 = false;         isdragging2 = false;         isdragging3 = false;         isdragging4 = false;         isdragging5 = false;         isdragging6 = false;         isdragging7 = false;      } } 

if wants use code feel free

according code, lines new shape , no array. first error.

var shapearray:array/* of flash.display.shape */ = [] /* of flash.display.shape */; var lines:shape = new shape();  // wrong function showit(e:event):void {   // lines shape, no array, lines[0] throw runtime error   // also, if wanted first shape, type reference   // shape instead string   var shapearray:string = lines[0]; }  // doing better function showit(e:event):void {   if (!shapearray || shapearray.length == 0)     return; // nothing here    const shape:shape = shapearray[0] shape;   if (shape && !shape.parent) // ensure exists , hasn't been added yet.     addchild(shape) // show } 

Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -