Archive for 6月, 2007

このページの目次

loadMovie()とsetMask()を同時に使う方法

月曜日, 6月 18th, 2007

こんにちは、なかわけです。

loadMovie()とsetMask()を同時に使う方法については、改めて
外部からswfを読み込んで同時にsetMask()でマスクする方法にまとめてあります!そちらを参考にしてください。



今日も仕事中に発見したことを忘れないうちに覚書。今日の発見はすごいです。
というか今までこの問題に遭遇しなかったのか不思議です。もしくは遭遇していて違う対処法をしていたのでしょうか。
いずれにせよ、今日の発見はなんとなくすごい。

FlashでloadMovie()関数を使うと、外部のswfやjpg画像などを読み込めます。
▼こんな感じ

myClip.loadMovie("画像のパス");

そうするとムービークリップ「myClip」に画像なりswfなりが読み込まれます。
でこのあとにmyClipにマスクをかけます。
▼こんな感じ

myClip.loadMovie("画像のパス");
myClip.setMask(maskClip名);

するとあら不思議。マスクかかりません!

これはいったい・・・・?

ちゃんとした答えはわかりませんが、いろいろ調べてみてなかわけ的には以下のように解釈しました。

[ なかわけの解釈 ]
loadMovie()は関数でsetMask()はメソッド。
loadMovie()関数を実行したあとでは、setMask()メソッドは有効にならない(設定が変更できない)。

はい。現象を確認しただけではなんの解決にもならないので、見つけた解決方法を以下に書いておきます。

[ 解決方法 ]

myClip.loadMovie("画像のパス", setMask(maskClip名);

Flashのヘルプを見ると、loadMovie()のパラメータには画像のパスと、ターゲットと、メソッドというのがあります。通常メソッドにはGETかPOSTが入るようですが、setMask()も同じメソッド扱いとなり受け付けてくれるようです。

なんとなく腑に落ちない感じはしますが、これでいけるようです。あー今日も勉強になった。

Flashの表示スケールをサイズ内に縮小拡大させて納めるかどうかのプロパティ

水曜日, 6月 13th, 2007

こんにちは、なかわけです。

今日仕事で発見したことを覚書き。
例えばFlashを300 x 300のステージサイズで制作してhtmlで200 x 200で表示したいときに、widthとheightをそれぞれ200に設定すればいいのですが、その際にうまく表示させるために<object>タグでは<PARAM NAME=scale VALUE=showall>というプロパティが、<embed>タグではscale=”showall”というプロパティがあります。

パラメータも4種類あります。
showall [すべて表示]縦横比を維持し指定サイズ内にムービー全体を表示
noborder [枠なし]縦横比を維持し指定サイズ内にムービー全体を表示
exactfit [フィット]ムービーの縦横比が変化し指定サイズに収まるように表示
noscale [拡大/縮小なし]Flashムービー内で指定されているサイズで表示 指定サイズがFlashステージサイズより小さい場合は表示が見切る

また、設定を省略すると「showall」を指定したことと同じになります。

今回も設定がnoscaleになってるのに気付かずに1日悩んだぜ!くそ!勉強になった!