Think About it



Home > Blog

20071011

cacheAsBitmap(1)


setMaskを使うとスクリプトでマスクをかけることが出来ます。

test_mc.setMask(mask_mc);




test_mcをmask_mcでマスクして表示。
mask_mcの円の形にtest_mcがくりぬかれます。

この、mask_mcは今、描画オブジェクトで書かれていて、線はなし、塗りのみ、となってます。

では、逆に線だけ、でマスクをかけることは出来るのでしょうか?
とりあえす、mask_mcを線だけにしてみます。



結果はごらんの通り。何も表示されません。

要するに、描画オブジェクト(ベクターオブジェクト)の場合は塗りのみマスクが適用されるようです。

では、描画オブジェクトではなく、ビットマップに変えてしまえばいいのでないか、となります。

それが、cacheAsBitmapプロパティです。

acheAsBitmap (MovieClip.cacheAsBitmap プロパティ) - Flashドキュメンテーション

これを使用するとベクターオブジェクトをビットマップオブジェクトに変換できます。

引用
ビットマップがキャッシュされているムービークリップのベクターデータはすべて、メインステージでなくビットマップに描画されます。


このようにします。

test_mc.setMask(mask_mc);
test_mc.cacheAsBitmap = true;
mask_mc.cacheAsBitmap = true;




結果、みごとに線にマスクをかけることが出来ました。

参考 - 線でマスク:にゃあプロジェクト

Labels: ,

----------------------------------------------------------------------------------------------------