2011-11-08 2 views
2

ActionScriptのDisplayObject.getBoundsは、ストロークを含むオブジェクトの境界を返します。 JSFLのSymbolInstanceのleft、top、width、heightの各プロパティにはストロークが含まれていないようです。 JSFLからのシンボルの境界を取得するために私が見つけた唯一の方法です。別の方法がありますか?JSFLのシンボルの境界をどのように取得するのですか?

答えて

0

ストロークは、オブジェクトの境界を取得することに関して、JSFLの幅が0です。 私が考えることができる唯一の方法は、シンボルを編集して形状を選択することです。 1.)ストロークサイズを取得し、その値の1/2を計算に追加するか、 2.)ストロークを塗りつぶし(複雑なアウトラインの場合は信頼できません)

ストロークのみを含めることはできますが、正確なサイジングは重要ではない場合は、getBoundsの結果に任意のピクセルを任意に追加できます。

+0

ストロークがオブジェクト全体の周りにあり、与えられた理由で2つが失敗した場合、私は1が動作すると信じています。悲しいことに、シンボルを画像に書き出し、Flashの外部に位置を再現しようとしているので、正確なサイズ設定が必要です。しかし、試みてくれてありがとう! –

2

あなたはのEdgeオブジェクトを探しています。 Edgeには、thicknessプロパティを持つStrokeオブジェクトがあります。

// This will show the selected shape's first edge's thickness: 
fl.trace(fl.getDocumentDOM().selection[0].edges[0].stroke.thickness); 

あなたは、最終的な境界を(あなたはすべてのエッジが同じ厚さを持っていることを確信している場合、1つだけチェック)を決定するために、すべての形やその辺のすべてをループする必要があります。

関連する問題