actionscript-3 - AS3 中的笔划在其整个长度上具有不同的宽度

标签 actionscript-3

我需要一个在整个长度的不同位置具有不同宽度的笔划。例如,我有一个手动绘制的路径(不使用 AS3),我想为其指定一个笔画,该笔画在路径长度的开头和结尾处宽度为 0,在路径长度的中间宽度为 10路径的长度,以便笔划的宽度可以在整个路径的长度上逐渐变化。 提前致谢

最佳答案

在 as3 中你可以使用 lineStyle() :

var segs:int = 32;//number of segments/'circle resolution'
var ai:Number = (Math.PI * 2) / segs;//angle increment
var offx:int = stage.stageWidth/2;//circle centre x
var offy:int = stage.stageHeight/2;//circle centre y
var rad:Number = 100;//circle radius
var maxWidth:Number = 18;

for(var i:int = 0 ; i < segs; i++){
    var a:Number = ai * i;
    var cx:Number = offx + Math.cos(a) * rad;
    var cy:Number = offy + Math.sin(a) * rad;
    graphics.lineStyle(i/segs * maxWidth);
    if(i == 0) graphics.moveTo(cx,cy);
    graphics.lineTo(cx,cy);
}

AS3 line style

但是您提到您需要在 Flash 编辑器中绘制它,因此您需要编写脚本。 您可以使用JSFL编写Flash编辑器脚本.

这是上面的 JSFL 端口:

var doc = fl.getDocumentDOM();
var segs = 32;//number of segments/'circle resolution'
var ai = (Math.PI * 2) / segs;//angle increment
var offx = doc.width/2;//circle centre x
var offy = doc.height/2;//circle centre y
var rad = 100;//circle radius
var maxWidth = 10;

for(var i = 0 ; i < segs; i++){
    var a = ai * i;
    var an = ai * (i+1);//next angle
    var cx = offx + Math.cos(a) * rad;//current pt
    var cy = offy + Math.sin(a) * rad;
    var nx = offx + Math.cos(an) * rad;//next pt
    var ny = offy + Math.sin(an) * rad;
    //this is mainly what you're after
    var s = doc.getCustomStroke("toolbar");
    s.thickness= (i/segs)*maxWidth;
    doc.setCustomStroke(s);

    doc.addNewLine({x:cx,y:cy},{x:nx,y:ny});
}

创建一个新的 Flash 文档,然后创建一个新的 Flash JavaScript 文件并运行上面的代码:

circle jsfl

中风的thickness属性(property)就是你所追求的。 您还可以使用 JSFL 创建自定义绘图工具。 查看 [Extending Macromedia Flash MX 2004: Complete Guide and Reference to JavaScript Flash](现在卖得相当便宜),这是您在该主题上可以获得的最好的东西。 还有一个关于创建 Tools 的免费章节这正是您所需要的。

另一种选择可能是编写 Radomír Měch 的 Deco Tool 脚本程序引擎。不幸的是,情况不太好documented

如果您要进入 JSFL,请查看 Dave Stewart 的精彩文章 xJSFL

虽然您提到了 Flash,但您可能还想查看 Scriptographer Illustrator 的免费插件,也可通过 JavaScript 编写脚本,Illustrator 生成矢量图形,您可以轻松导入回 Flash。

关于actionscript-3 - AS3 中的笔划在其整个长度上具有不同的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322198/

相关文章:

actionscript-3 - 有什么方法可以拦截 AS3 中的类型化函数调用?

javascript - Facebook Flash 应用程序无法与 JavaScript 通信

actionscript-3 - AS3 SecureSocket addBinary 链构建证书不可用?

actionscript-3 - Flash Builder 因警告(绑定(bind)错误)而中断?

actionscript-3 - 如何从 youtube 播放器中删除 youtube Logo 以用于其他应用程序?

actionscript-3 - AS3如何仅在x轴上开始拖动?

actionscript-3 - AS3/Flex 性能 - 新的 ArrayList 与 ArrayList.removeAll()

actionscript-3 - ActionScript MouseEvent.clone() 似乎已损坏?

actionscript-3 - Actionscript 3 (as3) 并发模型

actionscript-3 - ActionScript 3 : Sequence Diagrams for Event Handling