0

そのため、Actionscriptでキャンバス上のカスタムシェイプを動的に描画する必要があります(線と円で作られたスピニングホイールのように)。FlashBuilderを使用しています。

質問1: 何がより良く(より速く)機能するでしょうか:

  • キャンバスのグラフィックに描画し、各フレームですべてをきれいにして再描画しますか?
  • 複数のShapeオブジェクトを作成し、それに応じて変換しますか?

質問2: シェイプを中心に対して回転させますが、親に対しては回転させないようにするにはどうすればよいですか?(マトリックスで遊んでみましたが、親コンテナに対しては相対的に機能します)。たぶん、いくつかのプッシュポップマトリックス機能がありますか?

4

1 に答える 1

2

質問1:ほぼ確実にShapesを直接使用する方が高速です。Flash Playerは、すべてを再描画する必要がない場合などに、画面を更新するためのより良い仕事をします。ただし、パフォーマンスが問題になる場合は、通常、短いテストを作成することをお勧めします。

質問2:でShapesあるDisplayObjectsため、プロパティを使用するだけで、原点(ポイント)rotationを中心に回転します。(0,0)原点を基準にしてシェイプを描画し、そのプロパティを使用して適切な場所に移動するようにしてくださいx y(たとえば、(70,70)を中心とする20x20の長方形の場合)。

var rect : Shape = new Shape();
rect.graphics.beginFill(0xffffff);
rect.graphics.drawRect(-10,-10,20,20); // center it properly about (0,0)
rect.graphics.endFill();
rect.x = 70.0; rect.y = 70.0; rect.rotation = 45.0; // move and rotate
于 2012-10-10T21:37:33.860 に答える