メイン コーダーズルーム【スクリプト系】 loadMovieしたものへのsetMask | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ichop | Åê¹ÆNo.2622 投稿日時: 2004-1-4 1:01 |
新米 居住地: 投稿: 10
使用環境:
MacOS9.1 WindowsXP FlashMX |
loadMovieしたものへのsetMask 初めて質問させて頂きます。
loadMovieしたものへのsetMaskはかからないのでしょうか? スクリプトはとりあえずこんな感じで実験してみたのですがうまくかかりません(loadMovieを行わなければマスクはかかります)。 LoadPict.loadMovie("Pict01.jpg"); LoadPict.setMask(Mask); また本来は次のように使用しているのですが、 テキストデータ(外部より読込)を含んだswfファイルをloadMovieし、読込元ファイルよりsetMaskをかけるとマスクがかからない為、対処法としてレイヤーマスクをかけ、テキストは埋め込みで対処しています。 ですが日本語を含むファイルが重くなりすぎてしまってどうにも使えそうにありません このような場合どのように対処するのがベストでしょうか? よろしくお願いします。 |
野中文雄 | Åê¹ÆNo.2626 投稿日時: 2004-1-4 2:59 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: loadMovieしたものへのsetMask 外部ファイルのロード完了を待たなければ、マスクの設定は効果がないと思います。
引用: ichopさんは書きました: デバイスフォントのマスクは、Flash Player 6.0r40から可能です。 引用: テキストデータ(外部より読込)を含んだswfファイルをloadMovieし、読込元ファイルよりsetMaskをかけるとマスクがかからない為、対処法としてレイヤーマスクをかけ、テキストは埋め込みで対処しています。 |
ichop | Åê¹ÆNo.2630 投稿日時: 2004-1-4 3:40 |
新米 居住地: 投稿: 10
使用環境:
MacOS9.1 WindowsXP FlashMX |
Re: loadMovieしたものへのsetMask 返信ありがとうございます。
スクリプトがなんとなく解りかけてきたきっかけが野中さんの本だったので大変光栄です。 サイトを参考させて頂き改良してみましたが上手くいきませんでした。 以下改良を加えたスクリプトですが、記述の仕方がいけないのでしょうか? //1フレーム目アクション loadPict.loadMovie("Pict01.jpg"); function Mask() { //関数が呼び出されているか確認したかった為、トレースしています。 trace("Mask.OK!") loadPict.setMask(mask); } //ムービークリップ「loadPict」アクション onClipEvent (data) { Bytes = this.getBytesLoaded(); TotalSize = this.getBytesTotal(); //本当にそれを読込んでいるのか確認したかったためトレースしています。 trace(TotalSize); if (TotalSize>0 && Bytes>=TotalSize) { _root.Mask(); } } よろしくお願いします。 |
野中文雄 | Åê¹ÆNo.2631 投稿日時: 2004-1-4 3:51 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: loadMovieしたものへのsetMask まいどありがとうございます。
引用: ichopさんは書きました: 「上手くいきません」は、NGワードです。trace()アクションの入れ方は適切ですので、結果がどうなったのかを、客観的かつ具体的に書きましょう。 以下の記述に誤りがないなら、trace()アクションの出力がまったく行われないと思われます。 引用: サイトを参考させて頂き改良してみましたが上手くいきませんでした。
|
ichop | Åê¹ÆNo.2632 投稿日時: 2004-1-4 4:00 |
新米 居住地: 投稿: 10
使用環境:
MacOS9.1 WindowsXP FlashMX |
Re: loadMovieしたものへのsetMask 引用:
以後気をつけます。 引用:
すみませんでしたこれはここへの記述ミスで、実際には「loadPict」に記述していました。 よって「Mask.OK!」と出力されていますが「setMask」は実行されていないようです。 よろしくお願いします。 |
ゲスト | Åê¹ÆNo.2633 投稿日時: 2004-1-4 4:07 |
Re: loadMovieしたものへのsetMask どうもこんにちわ
ちょっと確認ですが、loadPictのonClipEvent (data)に記述してる_root.Mask()命令ですが、パスは問題ないんですよね? |
|
youich | Åê¹ÆNo.2634 投稿日時: 2004-1-4 4:22 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: loadMovieしたものへのsetMask 引用:
読み込むjpgが別ドメインってことは無いですよね? それなら、allowDomainが要ることも考えられますが、、、 引用:
って書いてあるから違うよねぇ。
|
野中文雄 | Åê¹ÆNo.2635 投稿日時: 2004-1-4 4:28 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: loadMovieしたものへのsetMask [1]まず外部ファイルを読込まない状態で、マスクが正しく設定されるかを確認してください。インスタンスloadPictが空だとか、マスクの確認ができない状態でしたら、ダミーのシェイプを描くなどして確かめます。
[2]つぎに外部ファイルが完全に読込まれたことを確認したうえで、マスクの設定を試してみてください。
引用: ichopさんは書きました: |
ichop | Åê¹ÆNo.2637 投稿日時: 2004-1-4 13:16 |
新米 居住地: 投稿: 10
使用環境:
MacOS9.1 WindowsXP FlashMX |
Re: loadMovieしたものへのsetMask みなさん夜分?早朝?にも関わらず返信どうもありがとうございます。
本日また検証してみました。 [1]setMaskのみでテスト _root.loadPict.setMask(mask); 結果:マスクはかかりました。 [2]関数を使用してテスト //loadPict.loadMovie("Pict01.jpg"); this.Mask(); function Mask() { //関数が呼び出されているか確認したかった為、トレースしています。 trace("Mask.OK!"); _root.loadPict.setMask(mask); } 結果:「Mask.OK!」と出力はされますがsetMaskが実行されません!? [3]パスを確認 //loadPict.loadMovie("Pict01.jpg"); this.Alpha(); function Alpha() { //関数が呼び出されているか確認したかった為、トレースしています。 trace("Alpha.OK!"); _root.loadPict._alpha = 10; } 結果:問題なく動作しました。 [4]読込完了確認後の「Alpha()」のテスト //1フレーム目アクション loadPict.loadMovie("Pict01.jpg"); function Alpha() { //関数が呼び出されているか確認したかった為、トレースしています。 trace("Alpha.OK!"); _root.loadPict._alpha = 10; } // MovieClip: _root.loadPict // MovieClipアクション onClipEvent (data) { Bytes = this.getBytesLoaded(); TotalSize = this.getBytesTotal(); //本当にそれを読込んでいるのか確認したかったためトレースしています。 trace(TotalSize); if (TotalSize>0 && Bytes>=TotalSize) { _root.Alpha(); } } 結果:問題なく動作しました。 [5]本当に読み込んだ後やってる?と思い・・・ // MovieClip: _root.Btnを追加 //1フレーム目アクション Btn._visible = false; loadPict.loadMovie("Pict01.jpg"); function Alpha() { //関数が呼び出されているか確認したかった為、トレースしています。 trace("Alpha.OK!"); _root.loadPict._Alpha = 10; } function BtnShow() { Btn._visible = true; } Btn.onRelease = function() { _root.Alpha(); }; // MovieClip: _root.loadPict // MovieClipアクション onClipEvent (data) { Bytes = this.getBytesLoaded(); TotalSize = this.getBytesTotal(); //本当にそれを読込んでいるのか確認したかったためトレースしています。 trace(TotalSize); if (TotalSize>0 && Bytes>=TotalSize) { _root.BtnShow(); } } 結果:問題なく動作しました。 以上の結果ふまえてsetMaskを実行しましたがやはり実行されません setMaskの文字も青くなっているのでスペルミスはないと思いますが・・・ |
野中文雄 | Åê¹ÆNo.2638 投稿日時: 2004-1-4 14:40 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: loadMovieしたものへのsetMask [2]の結果が、問題ですね。
引用: ichopさんは書きました: trace()する内容を、少し変更してみましょう。おそらく、つぎのように出力されるはずです。 [type Function],[type Function] 前者は_root.loadPictのMovieClip.setMask()メソッドの存在が認識されており、問題ありません。ところが、後者のmaskがMovieClipでなく、同名の関数_root.Mask()と誤認されています。Flash MXでは、識別子(関数名や変数名)の大文字・小文字を区別しないためです。 #MX 2004では、大文字と小文字が区別されるようになります。 #でも、同名の識別子は、間違えやすいので避けることをお勧めします。 MovieClipインスタンス名をmask_mcなどに、変更しましょう。 引用: [2]関数を使用してテスト MovieClip._alphaプロパティの設定には、ロード待ちの必要がありません。比較テストには、適さないでしょう。 引用: [4]読込完了確認後の「Alpha()」のテスト |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |