如何在动作脚本3(Flash)中绘制流畅的线条

时间:2010-06-21 09:24:57

标签: actionscript-3

如何使用动作脚本3(使用flex 4)绘制流畅的线条?

我的意思是:我这样做:

        var grap:Graphics =  this.display.graphics;
        grap.lineStyle(8, 0xFF0000, 1, true, "normal", CapsStyle.ROUND);
        grap.moveTo(180,330);
        grap.lineTo(200,130);

但结果如下:
http://sub.ited.nl/try/ :(
线条的边缘很脆,我怎么能改善这个? 特别是当通过Tween绘制线条时,它看起来像是在人行道上行走的醉酒男子;)...

用于绘制线条的补间代码:

        var grap:Graphics =  this.display.graphics;
        grap.lineStyle(8, 0xFF0000, 1, true, "normal", CapsStyle.ROUND);
        grap.moveTo(220,330);
        new Tween(this, [220, 330], [240, 130]);

在onTweenUpdate方法中:

        this.display.graphics.lineTo(values[0], values[1]);

请就此提出一些建议?

BTW:怎样才能最好地删除flash对象的默认背景? (灰色背景)。 我在index.mxml:

中有这个
    <mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="600" 
addedToStage="start()" styleName="plain" backgroundImage="{null}">

但我经常看到一个闪烁(在开发模式下),这意味着我首先看到默认的灰色背景,然后是白色的......

提前致谢

1 个答案:

答案 0 :(得分:2)

有没有理由在每次迭代中都没有将线路的进度拖空到目前为止并重新绘制它?如:

// inside tween update
displayObj.graphics.clear();
displayObj.graphics.moveTo(180,330);
displayObj.graphics.lineTo(values[0]);
// i.e. only the end point is tweened

在你当前的代码中,你实际上是在绘制很多单独的行,所以你为提高平滑度而做的任何事情都会精确地依赖于Flash渲染的内部结构,所以你最好每帧重绘整行。