2

長さ全体にわたって、場所によって幅が異なるストロークが必要です。たとえば、手動で (AS3 を使用せずに) 描いたパスがあり、パスの長さの最初と最後で幅が 0、中央で幅が 10 のストロークを割り当てたいとします。ストロークの幅がパスの長さ全体にわたって徐々に変化するように、パスの長さを調整します。前もって感謝します

4

1 に答える 1

2

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ラインスタイル

しかし、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ファイルを作成し、上記のコードを実行します。

サークルjsfl

ストロークの厚みのプロパティは、あなたが求めているものです。JSFLを使用してカスタム描画ツールを作成することもできます。[Extending Macromedia Flash MX 2004:完全なガイドとJavaScript Flashのリファレンス](現在はかなり安く売れています)をチェックしてください。これは、このテーマで得られる最高のものです。まさに必要なツールの作成に関する無料の章もあります。

もう1つのオプションは、RadomírMěchのDecoTool手続き型エンジンをスクリプト化することです。残念ながら、それは十分に文書化されていません。

JSFLに参加する場合は、DaveStewartの素晴らしいxJSFLをチェックアウトしてください。

Flashについて言及しましたが、JavaScriptを介してスクリプト化できるIllustrator用のScriptographer無料プラグインを調べることもできます。Illustratorは、Flashに簡単にインポートできるベクターグラフィックを生成します。

于 2013-03-11T08:56:19.607 に答える