Здравствуйте, у меня вопрос по Graphics.drawPath(). Писал когда-то работоспособный простенький редактор сплайнов, отрисовку производил с помощью Graphics.drawGraphicsData(). Выглядело это так:

Код AS3:
public function redraw ():void {
var gdata:Vector.<IGraphicsData>=new Vector.<IGraphicsData> ();
var path:GraphicsPath=_spline.toGraphicsPath ();
gdata.push (new GraphicsStroke ( 0, false, "normal", "none", "round", 3.0, new GraphicsSolidFill (_bodyColor, _bodyAlpha) ));
gdata.push (path);
_body.graphics.clear ();
_body.graphics.drawGraphicsData (gdata);
// ... ...
}
То есть я не использовал drawPath() напрямую, и проблем не возникало.
Сейчас я произвожу модификацию сплайна или шейпа (вернее, их graphics) с помощью последовательных вызовов lineStyle(), beginFill(), endFill() из других объектов. Между ними я планировал вставлять вызовы drawPath(). Вот "рабочая лошадка":

Код AS3:
override public function process ():void {
var p0:AGUnit = _parents[0], p1:AGUnit = _parents[1];
if (p0 == null) {_output = null; return;}
if (!(p0.output is Shape) && !(p0.output is Sprite)) {_output = null; return;}
var gr:Graphics = p0.output.graphics;
if (p1 != null && p1.output != null && (p1.output is AGSpline)) {
var path:GraphicsPath = (p1.output as AGSpline).toGraphicsPath ();
gr.drawPath (path.commands, path.data, path.winding);
}
_output = p0.output;
}
Когда этот метод вызывается, плейер выдает критическую ошибку и убивается насмерть. На всякий случай, вот так производится сборка GraphicsPath:

Код AS3:
public override function toGraphicsPath ():GraphicsPath {
var gp:GraphicsPath=new GraphicsPath ();
if (_points.length==0) {return gp;}
var p:AGPoint=_points[0];
gp.moveTo (p.x, p.y);
for (var n:uint=1; n<_points.length; n++) {
p=_points[n];
gp.lineTo (p.x, p.y);
}
if (_closed) {p=_points[0]; gp.lineTo (p.x, p.y);}
return gp;
}
Никто не знает, что это такое? Спасибо заранее.