0

スプライス関数を使用すると、ポイントが挿入されますが、配列の最後の要素のコピーが複製されます。

    for(indexpoint=0;indexpoint<intpoints.length;indexpoint++)

    { 


            temp.points[indexpoint].x = intpoints[indexpoint].x+this.x;

            temp.points[indexpoint].y = intpoints[indexpoint].y+this.y;


    }

    const point:Point = new Point();
    point.x = (intpoints[2].x+intpoints[3].x)/2+this.x;
    point.y = (intpoints[2].y+intpoints[3].y)/2+this.y;

    temp.points.splice(3,0, point);
4

1 に答える 1

1

そんなことはあってはなりません。

私はこれを試しました:

var a:Array = new Array(new Point(0,0), new Point(0, 1), new Point(0, 2));
var p:Point = new Point(0, 3);
a.splice(3, 0, p);
trace(a);

これは正しくトレースします: (x=0, y=0),(x=0, y=1),(x=0, y=2),(x=0, y=3)

スプライスが呼び出される前に temp.points 配列をトレースしてみてください。

于 2013-02-14T09:02:45.510 に答える