0

Flash CS3 を使用して簡単な描画アプリケーションを作成しています。ユーザーがボタンをクリックすると、特定のムービークリップが選択されます。ステージ上の他の場所をクリックすると、クリップがインスタンス化され、カーソルの位置でステージに追加されます。また、追加したクリップをクリックして画面上でドラッグできるオプションも追加しました。そして、これはすべて正常に機能します。

問題は、Graphics クラスを介してオブジェクトを動的に描画してステージに追加できるようにしたいということです。この方法でオブジェクトを追加すると、ステージ上のどこに配置しても、x 座標と y 座標は常に 0,0 になります。これにより、これらのグラフィックスの配置が非常に困難になります。これらの動的に描画されるグラフィック用に特別に修正された配置関数を作成しました。「機能」している間は、ムービークリップ オブジェクトの配置よりも応答性が低く感じられます。私はまだこの機能を最適化しようとしていますが、理想的な解決策は、ムービークリップ オブジェクトのようにステージの中央に配置されたときに、グラフィックスがゼロ以外の座標を持つようにすることです。これを達成するための「回避策」はありますか?

4

3 に答える 3

1

ムービークリップ/スプライト内でグラフィックス クラスを使用して描画する場合は、それをビットマップに描画し、ムービークリップの代わりにビットマップを表示する必要があります。ムービークリップは非常に多くのベクトル情報しか保持できず、何かを描画したとしても、Graphics クラスで作成された形状は実際にはそこにあります。Doob 氏の Stats クラスのようなものでフレーム レートを追跡すると、MovieClip がいっぱいになり始めると、fps が急激に低下することがわかります。解決策は、BitmapData の draw() メソッドを使用して、ムービークリップの内容を表示中のビットマップにコピーすることです。ビットマップを作成するときは、それを BitmapData にリンクする必要があります。draw を呼び出すたびに、Bitmap が更新されます (これは便利です)。

先週ペイント アプリを作成したので、この問題を直接経験しました。

于 2010-03-04T10:28:28.810 に答える
0

ムービークリップ内に描画してから、そのムービークリップを移動する必要があります。描画は実際にはオブジェクト自体にバインドされているため、個別に移動することはできません。コンテナを作成し、その上に描画し、コンテナを他のクリップ内で移動します。

于 2010-03-03T22:51:25.117 に答える
0

マトリックス クラスを使用して、表示オブジェクトの登録点を変更できます。

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Matrix.html

于 2010-03-03T10:19:22.643 に答える