画像のスムージング設定をしてみた。
外部画像を読み込んで回転してみる。
要 Flash Player 8 以上_root に、ムービークリップ(インスタンス名: base_mc) を配置。
base_mc には、空のムービークリップ(インスタンス名: photo) を配置。
# base_mc の基準点は中央にあり、photo は base_mc の(-120, -90) に配置。
_root 第1フレームに
var imgLoader:MovieClipLoader = new MovieClipLoader();
var imgListener:Object = new Object();
imgListener.onLoadInit = function(target_mc:MovieClip):Void {
var _mc:MovieClip = target_mc._parent;
_mc.onRelease = function():Void {
(中略)
};
};
imgLoader.addListener(imgListener);
imgLoader.loadClip("cat.jpg", base_mc.photo);
と記述。
すると、左側の画像では、ギザギザがあぁ。
# Flash Player 7 書き出しでは、このようなことは起きない。
そこで、右側の画像のプロパティパネルを開いて...。
って、できないじゃーん。
そうだ!
スクリプトでビットマップスムージングを!
_root 第1フレームに
import flash.display.BitmapData;
var imgLoader:MovieClipLoader = new MovieClipLoader();
var imgListener:Object = new Object();
imgListener.onLoadInit = function(target_mc:MovieClip):Void {
var _mc:MovieClip = target_mc._parent;
bitmapSmoothing(target_mc, _mc.photo);
_mc.onRelease = function():Void {
(中略)
};
};
imgLoader.addListener(imgListener);
base_mc.createEmptyMovieClip("loader", 1);
base_mc.loader._x = -120;
base_mc.loader._y = -90;
imgLoader.loadClip("cat.jpg", base_mc.loader);
function bitmapSmoothing(loader:MovieClip, holder:MovieClip):Void {
var _bd:BitmapData = new BitmapData(loader._width, loader._height, true);
_bd.draw(loader);
holder.attachBitmap(_bd, 0, "auto", true);
loader.removeMovieClip();
}
と記述。
スムージングがかかってるよー。
実は、Flash Player 8 では、
アルファチャンネルつきPNGも読み込める。
がっ!しかし!
このままでは、透過しない。
_root 第1フレームに
(中略)
imgLoader.loadClip("frog.png", base_mc.loader);
function bitmapSmoothing(loader:MovieClip, holder:MovieClip):Void {
var _bd:BitmapData = new BitmapData(loader._width, loader._height, true, 0x00000000);
_bd.draw(loader);
holder.attachBitmap(_bd, 0, "auto", true);
loader.removeMovieClip();
}
と記述。
これで、どうだー。
関連記事:
BitmapDataを基礎から学ぶのだ! (1)関連記事:
画像のスムージング設定 (1)関連記事:
画像のスムージング設定 (2)関連記事:
BitmapDataを基礎から学ぶのだ! (3)