トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     setMaskで不自然な動きをしてしまいます
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
earthstar
Åê¹ÆNo.12655
投稿日時: 2004-11-25 0:50
新米
居住地:
投稿: 9
使用環境:
PC   : MacOS9.2
Flash : FLASH MX

 
setMaskで不自然な動きをしてしまいます
いつもお世話になっております!
いくつも質問してしまい恐縮するばかりなのですが
分からないことができ質問させて頂きました


setMaskに関してなのですが、
外部swfファイルを読み込んでくると
外部swfファイル読み込みスクリプトを書いたボタンに
マウスオーバーのときと、マウスアウトのときとで
動作が異なり不明な動きをしてしまいます。


まず、
A.swfのmainMCにmaskMCというMCでマスクをかけるよう
1フレーム目に

this.stop(); // 1フレーム目で停止
mainMC.setMask(maskMC) 

とスクリプトを書きました。
その時点で確認するとマスクがかかっています。


次に、そのmainMCに外部swf"B.swf"を読み込んでくるよう、
ボタンAに

on(press){
_level0.mainMC.loadMovie("B.swf");
}

というスクリプトと、

マウスオーバーしたとき
B.swfの説明テキスト表示させる用のフレームへ飛び、
マウスアウトしたときには初期の説明を表示させるよう

on (rollOver) {
this.gotoAndPlay("setsumei_B"); // 説明Bラベルへ移動
}
on (rollOut) {
gotoAndStop("setsumei_first"); //初期説明ラベルへ移動
}

というスクリプトを書きました。


外部swf"B.swf"ファイルには
画像と
外部から読み込んできたダイナミックテキスト × 1、
静止テキスト × 2 (a、b) が入っています。


この状態で動作確認し、外部B.swfをmainMCに読み込んでくると

1.クリック後そのままボタンにマウスを乗せている状態ではB.swfにはマスクがかからず、
2.ボタンからマウスを外すとマスクはかかるのですが
静止テキスト"a"が消えてしまいます。
(ダイナミックテキストと、
 同じ設定でフォントサイズの違う静止テキスト"b"は表示されています)

一度、ボタンからマウスを外して、再度ボタンに触れても1の状態にはならず
2の状態を保持しています。


これをちゃんと直すにはどうしたらいいでしょうか
説明不足の点が多いかと存じますが
どうかお教え頂けませんでしょうか?
宜しくお願い致します!

空野大二郎
Åê¹ÆNo.12659
投稿日時: 2004-11-25 4:17
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: setMaskで不自然な動きをしてしまいます
 まいど。

[現場検証]
 段階的に見ていきます。

1:mainMC.setMask(maskMC)で、マスクがかかるか?
→かかりました。

2:_level0.mainMC.loadMovie("B.swf")でボタンを押したらどうなる?
→マスクがリセットされました。

3:この時点で、ボタンAにロールオーバーしているので、下記の
イベントは発生しません。

on (rollOver) {
	this.gotoAndPlay("setsumei_B"); // 説明Bラベルへ移動
}


4:ロールアウト実行。おそらく、移動先"setsumei_first"は
1フレーム目であることが考えられます。
on (rollOut) {
	this.gotoAndStop("setsumei_first"); //初期説明ラベルへ移動
}

→マスクがかかりました。下記が再び実行されたためでしょう。
this.stop(); // 1フレーム目で停止
mainMC.setMask(maskMC) 

・下記のテキストはマスクの枠内に表示、だがマスクは完全に適応されていない。
ダイナミックテキスト(_等幅)、静止テキストa(_等幅、デバイス
フォント:オフ)、静止テキストb(_明朝、デバイスフォント:オフ)
・静止テキスト"a"が消える現象は未確認。

[問題点]
 上記の現場検証から、2種類の問題が発生していることが確認されました。

 問題1:loadMovie()が実行されたムービークリップは、読込
完了時にsetMask()も解除される。

 問題2:静止テキスト、ダイナミックテキストにマスクを適応時、
不完全にマスクがかかる。
 (静止テキスト"a"が消える現象は再現せず。現場の状況がまだ
不足しています。)

[対策]
 問題1については、"mainMC"に外部.swfファイル読込完了と同時に、
クリップアクションで、マスクを再度かけるようにすればよいでしょう。
//mainMCのクリップアクションに記述
onClipEvent(load) {
	this.setMask(_level0.maskMC);
}


 問題2については、下記を参照して状況を再検討して下さい。
 earthstarさんは、テキストとマスクの関係を把握することが必要だと考えられます。
ダイナミックテキストにマスク

デバイスフォントとマスク
調査手順は以上です。


----------------
空野 大二郎 アニメーター作家
桜の道

earthstar
Åê¹ÆNo.12732
投稿日時: 2004-11-26 17:53
新米
居住地:
投稿: 9
使用環境:
PC   : MacOS9.2
Flash : FLASH MX

 
Re: setMaskで不自然な動きをしてしまいます
空野大二郎さん、いつも本当にありがとうございます(^-^)!


マスクが不自然にかかってしまう件なのですが、

4:ロールアウト実行。おそらく、移動先"setsumei_first"は
1フレーム目であることが考えられます。

と、上記でお教え頂きました通り、
1フレーム目に戻るようスクリプトで指示しておりましたため、
ボタンの上にマウスがある際は読み込んできたswfファイルにマスクが
かからないようになっていました。
初歩的な所でつまづいてしまい恥ずかしい限りなのですが
御指摘くださりありがとうございます


引用:

空野大二郎さんは書きました:
 
[対策]
 問題1については、"mainMC"に外部.swfファイル読込完了と同時に、
クリップアクションで、マスクを再度かけるようにすればよいでしょう。
//mainMCのクリップアクションに記述
onClipEvent(load) {
	this.setMask(_level0.maskMC);
}



こちらの方なのですが、
まだ上手く動いてくれないのですが
いろいろ試して頑張ってみます!


また、問題2のテキストについてはまだ検証中なのですが
同じテキストが消えるため、こちらも何通りか試して
解り次第、再度こちらの方に書き込ませて頂きます。


本当にありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops