BitmapのsmoothingとPixelSnappingの謎
- 2011-02-06
- flash
今日FlashでBitmapをいじっているときに、Flashってこういう仕様だったっけ?という現象に出会ったのでメモ。
『ActionScript用に書き出し』するとスムージングされなくなる
『ActionScript用に書き出し』されている画像をFlashIDE上で配置すると、スムージングにチェックを入れていてもスムージングされなくなる。
ActionScript用に書き出しのチェックを外すと右の画像も左の画像と同じようにスムージングがかかる。
→flaファイルはこちら(CS4)
PixelSnappingのNEVERが効かない?
上のFlashはActionScriptで配置したビットマップと、IDE上に配置してあるSpriteを毎フレーム0.1ピクセルずつ移動させたもの。ASで配置した画像は以下のようにPixelSnappingをNEVERにしているが、実際はピクセル吸着されていてスムーズに横移動していない。
ACTIONSCRIPT:
-
var sky1:Bitmap=new Bitmap(new Sky(0,0),PixelSnapping.NEVER,true);
-
addChild(sky1);
ActionScript 3.0 コンポーネントリファレンスガイドによると、PixelSnappingがAUTOのときは以下の条件でピクセルに吸着される。
AUTO : String = "auto"
[static]Bitmap オブジェクトの pixelSnapping プロパティで使用される定数値です。ビットマップイメージが回転または傾斜なしで、99.9% ~ 100.1% の縮尺率で描画される場合に、ビットマップイメージが最も近いピクセルに吸着することを指定します。
上のFlashもsky1.rotation = 0.5としたり、sky1.scaleX = 1.01とすると、ピクセル吸着しなくなるのだけど、それだとpixelSnappingのAUTOとNEVERには違いがないということになってしまう。
→flaファイルはこちら(CS4)