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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     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さんは書きました:
loadMovieしたものへのsetMaskはかからないのでしょうか?

スクリプトはとりあえずこんな感じで実験してみたのですがうまくかかりません(loadMovieを行わなければマスクはかかります)。
LoadPict.loadMovie("Pict01.jpg");
LoadPict.setMask(Mask);

デバイスフォントのマスクは、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()アクションの出力がまったく行われないと思われます。
引用:
サイトを参考させて頂き改良してみましたが上手くいきませんでした。

//1フレーム目アクション
loadPict.loadMovie("Pict01.jpg");
function Mask() {
	//関数が呼び出されているか確認したかった為、トレースしています。
	trace("Mask.OK!")
	loadPict.setMask(mask);
}
//ムービークリップ「mask」アクション <-【NG】
// dataイベントはMovieClip.loadMovie()メソッドのターゲットに発生
// したがってMovieClipインスタンスloadPictに設定すべき
onClipEvent (data) {
	Bytes = this.getBytesLoaded();
	TotalSize = this.getBytesTotal();
	//本当にそれを読込んでいるのか確認したかったためトレースしています。
	trace(TotalSize);
	if (TotalSize>0 && Bytes>=TotalSize) {
		_root.Mask();
	}
}


----------------
 

ichop
Åê¹ÆNo.2632
投稿日時: 2004-1-4 4:00
新米
居住地:
投稿: 10
使用環境:
MacOS9.1
WindowsXP
FlashMX
Re: loadMovieしたものへのsetMask
引用:

上手くいきません

以後気をつけます。
引用:

//ムービークリップ「mask」アクション <-【NG】

すみませんでしたこれはここへの記述ミスで、実際には「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
引用:

よって「Mask.OK!」と出力されていますが「setMask」は実行されていないようです。

よろしくお願いします。



読み込むjpgが別ドメインってことは無いですよね?
それなら、allowDomainが要ることも考えられますが、、、

引用:

LoadPict.loadMovie("Pict01.jpg");
LoadPict.setMask(Mask);

って書いてあるから違うよねぇ。


----------------
- yo

野中文雄
Åê¹ÆNo.2635
投稿日時: 2004-1-4 4:28
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadMovieしたものへのsetMask
[1]まず外部ファイルを読込まない状態で、マスクが正しく設定されるかを確認してください。インスタンスloadPictが空だとか、マスクの確認ができない状態でしたら、ダミーのシェイプを描くなどして確かめます。
// _root
// 第1フレームアクション
// loadPict.loadMovie("Pict01.jpg");
this.Mask();
function Mask() {
 //関数が呼び出されているか確認したかった為、トレースしています。
       trace("Mask.OK!")
       loadPict.setMask(mask);
}

[2]つぎに外部ファイルが完全に読込まれたことを確認したうえで、マスクの設定を試してみてください。
// MovieClip: _root.loadPict
// MovieClipアクション
onClipEvent (mouseDown) {
       _root.Mask();
}

引用:
ichopさんは書きました:
すみませんでしたこれはここへの記述ミスで、実際には「loadPict」に記述していました。
よって「Mask.OK!」と出力されていますが「setMask」は実行されていないようです。


----------------
 

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さんは書きました:
[1]setMaskのみでテスト
_root.loadPict.setMask(mask);

結果:マスクはかかりました。

trace()する内容を、少し変更してみましょう。おそらく、つぎのように出力されるはずです。

[type Function],[type Function]

前者は_root.loadPictのMovieClip.setMask()メソッドの存在が認識されており、問題ありません。ところが、後者のmaskがMovieClipでなく、同名の関数_root.Mask()と誤認されています。Flash MXでは、識別子(関数名や変数名)の大文字・小文字を区別しないためです。

#MX 2004では、大文字と小文字が区別されるようになります。
#でも、同名の識別子は、間違えやすいので避けることをお勧めします。

MovieClipインスタンス名をmask_mcなどに、変更しましょう。
引用:
[2]関数を使用してテスト
//loadPict.loadMovie("Pict01.jpg");
this.Mask();
function Mask() {
	//関数が呼び出されているか確認したかった為、トレースしています。
	// trace("Mask.OK!");
	trace([_root.loadPict.setMask, mask]);  //【変更】
	_root.loadPict.setMask(mask);
}

結果:「Mask.OK!」と出力はされますがsetMaskが実行されません!?

MovieClip._alphaプロパティの設定には、ロード待ちの必要がありません。比較テストには、適さないでしょう。
引用:
[4]読込完了確認後の「Alpha()」のテスト
//1フレーム目アクション
loadPict.loadMovie("Pict01.jpg");
this.Alpha();  // ロード待ちの必要なし
function Alpha() {
	//関数が呼び出されているか確認したかった為、トレースしています。
	trace("Alpha.OK!");
	_root.loadPict._alpha = 10;
}

...
結果:問題なく動作しました。


----------------
 

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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