« 3次のベジェから2次のベジェ(B-Spline)に変換 | トップページ | 圧縮されたSWFの書き出し »

2007年2月15日 (木)

SWF書き出しで、パスの隙間があると

先日から開発しているFlashのSWF書き出しツールの覚書3

Javaで使うShapeはfloatで定義されているが、SWFはTWIPという不思議な単位で座標を定義している。

 TWIP=1/20ピクセル。

と考えてほぼ問題ない。


で、SWFで図形を描く時は、TWIPの変化分で表現していく。つまり行き先を指定する lineTo( x , y ) ではなく、移動分を指定する line( dx ,dy ) で描いていくような感覚。

その時に、Shapeの線や曲線を、前回の座標との差で描いていくと、殆ど問題なく図形が出来上がる。。が微妙に表示が崩れることがある。

A_1


これは、どうやらTWIPでパスの最後の点が正しく始点に戻っていない(つまり正しく閉じていない)時に起こる現象らしい。

とりあえずStyleChangeRecordで最初に点を移動する時に、始点として記憶し、ShapeのclosePathの時、閉じるための EdgeRecord を現在の点から原点に向けて描いてあげると正しく閉じて、変な状態が無くなりました。

他にもいくつも解決法が考えられるので、もっと正しい方法があるかもしれませんのであしからず。。

2月 15, 2007 SWF書き出し | このエントリーを含むはてなブックマーク

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/130974/13918036

この記事へのトラックバック一覧です: SWF書き出しで、パスの隙間があると:

コメント

突然のコメント失礼いたします。
私アライドアーキテクツ株式会社の清水と申します。
この度、エンジニアの情報を集めたクチコミサイトのスタートに際しまして、
是非ともお力添えを頂きたくコメントさせて頂きました。

このサイトの仕組みは、皆様のブログの記事の中から
PHP、パール、JAVA、C言語、HTML/CSS、FLASH、JAVASCRIPT、オラクル、S QL/EJB QL等に関する記事のみをサイトに収集し、
クチコミサイトを作るというものでございます。
ブログを読ませていただきまして、ぜひともご協力いただきたく
思いまして、コメントという形でご連絡させていただきました。

特にお手間を頂戴する訳では御座いませんが、ご投稿されている記事を収集してサイト上で使用する許可を頂ければ幸いでございます。
記事が収集されると元記事へのリンクが貼られますので、サイトからの訪問者の増加が期待できますので、サイトのアクセスアップに活用いただければ
幸いでございます。また詳しい説明や以下のページからご確認頂ければと思います。何卒宜しく願いいたします。

【説明・登録ページ】
http://www.edita.jp/admin/blogger_regist.php?id=1031&c=0

【お問い合わせ】
support3@edita.jp

投稿: shimizu | 2007/02/17 22:02:33

コメントを書く