如果你有路径,你几乎可以做任何事情。另一种选择是将路径交给javascript中的增量路径扩展器。这是我通常使用的代码(我已将其作为其他答案的一部分发布,它并不完全独特,但这个化身是我的):
function drawpath( canvas, pathstr, duration, attr, callback )
{
var guide_path;
if ( typeof( pathstr ) == "string" )
guide_path = canvas.path( pathstr ).attr( { stroke: "none", fill: "none" } );
else
guide_path = pathstr;
var path = canvas.path( guide_path.getSubpath( 0, 1 ) ).attr( attr );
var total_length = guide_path.getTotalLength( guide_path );
var last_point = guide_path.getPointAtLength( 0 );
var start_time = new Date().getTime();
var interval_length = 50;
var result = path;
var interval_id = setInterval( function()
{
var elapsed_time = new Date().getTime() - start_time;
var this_length = elapsed_time / duration * total_length;
var subpathstr = guide_path.getSubpath( 0, this_length );
attr.path = subpathstr;
path.animate( attr, interval_length );
if ( elapsed_time >= duration )
{
clearInterval( interval_id );
if ( callback != undefined ) callback();
guide_path.remove();
}
}, interval_length );
return result;
}
然后,您将输入文本的路径到此函数。理想情况下,我一次只写一个字母——复杂的路径似乎在 Firefox 中陷入困境,尽管 Chrome 似乎可以很好地处理它们。
这是我网站上的模型。