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: ActionScript, bitmap

<< Home