
No.1ベストアンサー
- 回答日時:
Flash のマスクは本来 「ベクタ画像の"形"」 でかけるものですから
できないのが普通ですし、PNGをマスクにする必要性が特に(あまり)見つからないので、
今までやってみたことはありませんでしたが...
しかし、
このご質問を見て実際にやってみましたら、透過(またはアルファ入り)PNGもマスクにできることがわかりました。
ただし条件付きです。
まず、
Suzuka の 「ファイル」→「プロジェクトのプロパティ」で
「SWFバージョン」の項目を 「SWF8」 にする必要があります。
(少なくとも携帯用 SWF4 では無理ということになります。)
そして、
レイヤーのマスク機能でマスクをかけるのではなくて、
ActionScript でマスクをかける必要があります。
さらに、
「マスクになるPNG」も「マスクをかけられる画像」も、
両方ともスプライト(ムービークリップ)の中に入れておく必要があります。
「シンボルリスト」内にスプライトを 2つ 追加して、
1つの スプライト 内の編集に入り、
そのスプライト内のレイヤーに、マスクになる PNG を追加します。
もう 1つの スプライト 内の編集に入り、
そのスプライト内のレイヤーに、マスクをかける画像を追加します。
その 「PNG入りスプライト」 と 「マスクをかけられる画像入りスプライト」 を
メインのレイヤーに追加します。
「PNG入りスプライト」 を配置したレイヤー名の部分をダブルクリックするなどして
「レイヤーのプロパティ」 パネルで任意の インスタンス名 を付けます。
ここでは 「png_mc」 という インスタンス名 を付けることにしておきます。
また、
「マスクをかけられる画像入りスプライト」 を配置したレイヤー名の部分もダブルクリックするなどして
「レイヤーのプロパティ」 パネルで任意の インスタンス名 を付けます。
ここでは 「my_mc」 という インスタンス名 を付けることにしておきます。
メインのタイムラインの一番上のレイヤー名を右クリックするなどして
「アクションレイヤーを挿入」 します。
そのアクションレイヤーのキーフレームを選択して、
キャンバス右側のパネルにある右下の「スクリプトを編集」ボタンをクリックし、
出てくる「スクリプトエディタ」パネルに次のように書きます。
---------------------------------------
// 「png_mc」のビットマップキャッシュを有効にする
png_mc.cacheAsBitmap = true;
// 「my_mc」のビットマップキャッシュを有効にする
my_mc.cacheAsBitmap = true;
// 「my_mc」 に 「png_mc」 のマスクをかける
my_mc.setMask(png_mc);
---------------------------------------
そして、
「ウィンドウ」→「プレビュー」などをすればマスクがかかっているのが確認できると思います。
以上の操作を1枚の画像にまとめたのが 【下の図】↓ です。
「透過していない部分」か「透過している部分」かの違いで、
「マスクになる部分」か「マスクにならない部分」が別れるのがわかると思います。
またそれに加えて 「アルファ」 のマスクもかかっているのがわかると思います。
(マスクは結局 "形" になるだけですから
マスクになるPNGの絵柄に凝っても意味がないのですが、
「Air Chrysalis (空気さなぎ)」 でも描いてみました。
(「Air Cocoon」 と訳すべきだったのだろうか???)
何でも良いですが、時のものを描いてみたただけのことで
絵柄に特に深い意味はありません。)
PNG を使った説明ではありませんが、
上に書いたことの大半は次↓のページに書いてあることです。
上に書いたスクリプトも、
次のページで書いてあるスクリプトをほぼそのまま使用しています。
「マスク・グラデーションマスク」
http://suzupara.iinaa.net/kiso111.html

この回答へのお礼
お礼日時:2009/08/10 15:09
わざわざご丁寧に画像までつけて下さって、ありがとうございます。
このやり方で出来ました!本当に感謝です。
アクションスクリプトはちょっと難しそうなので、今まで避けてきましたが
これを期に利用していきたいと思いました。
今回は本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
FLASHの再生はできないのでしょ...
-
uwscでExcelに自動記入
-
PHPの変数をAS3に渡す方法
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
OpenGLで背景をグラデーション...
-
OpenGLのグラデーションについて
-
CSSアニメーションの文字について
-
illustrator→FLASHでグラデーシ...
-
FLASHで使用するマスクやイラス...
-
Simulinkのサブシステムの完全...
-
グラデーションマスクのかけ方...
-
VBAユーザーホームテキストボッ...
-
変数に256文字以上のテキストを...
-
VB6.0で、フォームから、別のフ...
-
四乗根を英語で言うと・・・
-
photoshopで書いた四角の枠の中...
-
python ボタンを押すと複数の関...
-
テキストボックスの中身をリセ...
-
【VB.NET】別Formのボタンが押...
-
マウス自体の移動量の取得
-
VBAで改行の入ったデータの正規...
-
UWSCのBTN関数について。
-
テキストボックスにセルの値を...
-
FLASHで脱出ゲームを作る時の、...
おすすめ情報