サイト内検索

メインメニュー

ログイン
ユーザID または e-mail:

パスワード:

IDとパスワードを記憶

パスワード紛失

オンライン状況
7 人のユーザが現在オンラインです。 (6 人のユーザが ウェブログ を参照しています。)

 登録ユーザ: 0
 ゲスト: 7

もっと...

ウェブログ カレンダー
« « 2010 9月 » »
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2

最新ブログ記事

最近のコメント

最近のトラックバック

|
ウェブログ - ひろゆきの記事
|
 ひろゆきの記事配信

2007/01/21 Sun
 画像のスムージング設定 (2)
カテゴリ: flash : actionscript : 
画像のスムージング設定をしてみた。
外部画像を読み込んで回転してみる。

要 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)
関連記事: [AS2.0] BitmapManagerクラスに挑戦! (1)
執筆者: ひろゆき (02:52)
ウェブログ | コメント (0) | トラックバック数 (0) | 閲覧数 (11836)
この記事のトラックバックURL  リンク・引用のないトラックバックは削除することがあります。
http://www.project-nya.jp/modules/weblog/weblog-tb.php/610
投稿された内容の著作権はコメントの投稿者に帰属します。
投稿者 スレッド