メイン ActionScript 3.0 特設会議室
cacheAsBitmap=trueにしたマスクへの描画位置がずれる | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| vader | Åê¹ÆNo.48724 投稿日時: 2012-1-30 20:45 |
常連 ![]() ![]() 居住地: 東京 投稿: 76
使用環境:
MacOS10.8,FlashCS6 |
cacheAsBitmap=trueにしたマスクへの描画位置がずれる こんにちわ。
いつも勉強させて頂いております。 Spriteにグラデーションマスクを適用する過程で、どうしても私の知識だけでは原因を特定できない不具合に遭遇しましたので、お知恵をお貸し下さい。 作業環境は、 Mac OS 10.6.8 Flash CS5 ActionScript3.0 Flash Player9 になります。 下記は、単純化するために構成を最小限にしたドキュメントクラスのコードです。 target_spはマスクの対象となるSprite、mask_spはマスク用のSpriteです。この2つのSpriteは、cacheAsBitmap=trueにしてあります。 ステージ上をクリックするとmask_spの座標をクリックした座標に変更し、その座標を中心とした200pxの矩形を描画するようにしています。 しかし、X, Y座標ともステージ座標が100未満の場所をクリックした場合、ステージ座標が0の位置から描画されてしまいます。 mask_spをメインタイムラインにaddChildした場合やcacheAsBitmap=trueにしなかった場合は、このような問題は起こりません。 どうしてcacheAsBitmap=trueにした場合に描画位置がずれるケースがあるのか、ご教示頂けないでしょうか? 「バグや仕様」といった回答でも構いません。 わかりにくい説明で大変恐縮ですが、何卒宜しくお願い申し上げます。 |
| 野中文雄 | Åê¹ÆNo.48725 投稿日時: 2012-1-30 22:57 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: cacheAsBitmap=trueにしたマスクへの描画位置がずれる Flash Player 10にすれば解消するようです。バグと評価します。下記のスクリプトをFLAのフレームレート1fpsくらいで確かめると、マスク用インスタンスへの描画は正しく行われているにもかかわらず、マスクとして適用されるイメージが違ってしまっているように見えます。
引用: vaderさんは書きました: |
| vader | Åê¹ÆNo.48726 投稿日時: 2012-1-31 1:22 |
常連 ![]() ![]() 居住地: 東京 投稿: 76
使用環境:
MacOS10.8,FlashCS6 |
Re: cacheAsBitmap=trueにしたマスクへの描画位置がずれる 野中様
ご回答頂き、誠にありがとうございます。 お教え頂いたコードでFPSを1にして確認して見た所、野中さんのおっしゃる通り、マスクへの描画自体は正しく行われ、cacheAsBitmapをtrueにするタイミングでずれていることが確認できました。 下記コードは、cacheAsBitmapをtrueにするタイミングをさらに1フレームずらすように変更したものですが、はっきりと1フレーム遅れてマスクがずれることが確認できました。 グラデーションマスクって結構使うと思うので、ちょっと困ったバグですね。 今回は、mask_spをメインタイムラインにaddChildして対処しようと思います。 原因が特定できて、とてもすっきりしました。貴重なお時間を頂き、本当にありがとうございました。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




CS5.5
.6.8
Vista Home Premium (SP1)

