2

EDIT2:ムービークリップがbipmapdataを保持していないために大きな数字が作成されているようですが、それについてはまだわかりませんが、私の本当の間違いは、1つの「getBounds」の前にある「this」を忘れてしまったことです...プロジェクトのサイズは大きくなり、バグを見つけることができませんでした=)

編集:ムービークリップに別のコンテナを使用しようとしましたが、ルートクラスでこれをすべて実行しました...別のコンテナを使用してすべてをcharakterクラスにアタッチすると、すべてが正常に機能しました。

OLD:ねえ、私は今ゲームを作っているので、キャラクターのボディの境界を取得したいと思います。私がどのようにすべてを設定したかを理解するために、私はhirarchyについて説明します。

私のフラッシュドキュメントのクラスは「game.as」です。「game.as」は、クラスCharakterの子を追加します。私のCharakterclassには、すべてのボディパーツのムービークリップがあります。たとえば、「head」のすべてのボディパーツには、ボディパーツの画像(この場合は「head」)を含むムービークリップがあります。

「head」クラス内でgetBounds(head.mc)を使用しようとすると、非常に奇妙な結果が得られます。通常、x = 64001、y = 64001、幅= 0、高さ=0付近の何か。

getBounds(head.mc)関数をヘッド内ではなく、Charakterクラス内で使用するだけで、この問題を解決する方法を見つけました。しかし、これは実際にやりたいことではないので、使用したいと思います。ヘッドクラス内のgetBounds(head.mc)関数。

結果がとても奇妙な理由や私がしなければならないことについて何か考えはありますか?これは私には論理的ではないように思われるので、私はすべての意見に非常に感謝していますxD

4

2 に答える 2

3

getBounds()不正確です。この問題を理解するには、次の投稿をお読みください。

getBoundsの「間違った」結果ソース

オブジェクトの独自の座標系を基準にしてオブジェクトの境界を取得する場合、それらの値はスケーリングされません。

getBounds()が誤った高さを返すソース

于 2012-08-23T14:13:25.290 に答える
2

head_mcの内側から、試してみてくださいgetBounds(this.parent);(親が最初に存在するかどうかをテストすることをお勧めします)-これにより、コンテナーがそれを認識しているときに、head_mcの境界が得られるはずです。あなたが要求します。

ビットマップデータは正しいですが、-getBounds()は時々奇妙な結果をもたらす可能性があります。ステージにhead_mcを追加する前に質問をしているように見えるため、width / height / x/yの未定義の値を取得しています。

于 2012-08-23T14:17:15.297 に答える