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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     マスクを使った画像変更
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Norichika
Åê¹ÆNo.17867
投稿日時: 2005-6-6 12:19
新米
居住地: 大阪
投稿: 13
使用環境:
macOS_10.3.8 , flashMX2004
マスクを使った画像変更
すいません何から始めたらいいかわからなくて
投稿させて頂きました

現在http://www.utowa.com/top_flash/index.html
のようにマウスを動かしたら画像が変わっていくものを
作りたいんですが、どう作っていけばいいかわかりません。

とりあえずマスクを使ってこのようなものを作りました
http://nori-chika.com/top_test.html
マスクを使っていますが、これから発展させて上記のサイトは作られているのでしょうか?
そこからもわからないのでよろしくお願いします。
ひろゆき
Åê¹ÆNo.17882
投稿日時: 2005-6-7 5:07
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: マスクを使った画像変更
引用:
すいません何から始めたらいいかわからなくて
投稿させて頂きました

まずは、作りたい動きをよく観察することから始めましょう。

おそらく「サンプル1」のような動きをつくることから
着手すればいいのではないかと。
#微妙に求める動きとは違ってます。

マウスに合わせて、バーとマスクを連動して動かしているのだと思いますが、
サンプル1では、マスクではなく、ムービークリップを、
バーの動きに合わせて、_yscale を変化させています。
#_heightで変化させてもいいと思うんですが。
#スクリプトを記述する上で、どっちが良いかは判断つきかねてます。

その動きができれば、これらのムービークリップを setMask で、
マスクにしてしまえばいいのではないかと。
ただ、注意しなければならないのは、深度ですね。
サンプル2
ここで、頭が爆発しそうになりました。
いまだに整理がついてません。
前もって、深度について、整理しておいた方がいいかも。
#サンプル2では、swapDepths を用いてます。
#統一感のない画像で動かすと、綺麗じゃないですね。


----------------
質問する際は、回答者に具体的な情報を与えてください。

Norichika
Åê¹ÆNo.17902
投稿日時: 2005-6-7 15:30
新米
居住地: 大阪
投稿: 13
使用環境:
macOS_10.3.8 , flashMX2004
Re: マスクを使った画像変更
ヒロユキ様
ありがとうございます。
これから作成していきます。
またわからないことがあればご指導お願いします。
Norichika
Åê¹ÆNo.17914
投稿日時: 2005-6-7 22:44
新米
居住地: 大阪
投稿: 13
使用環境:
macOS_10.3.8 , flashMX2004
Re: マスクを使った画像変更
ヒロユキ様のサンプルを見ながら作っているのですがすいません初心者なんでいきなりあのサンプル1にまで持っていくことが出来ないので1つ1つ解決していきたいと思っております。

各色のムービークリップに
onClipEvent(load){
this._y = 0;
this._yscale = 0;
}
と書いて

現在動くバーにスクリプトを
onClipEvent (load) {
this._y = 0;
H = 80;
Flg = "up"
}
onClipEvent (enterFrame) {
this._y += (this._parent._ymouse-this._y)*0.2
top = this._y
bottom = this._y + 80;
}
と書いています
次にup down の判定を考えているのですが、現在いきずまっています。
考え方はバーの右上の部分の数値が下がるとdown上がるとup と
いう考え方をしているんですが、
スクリプトの書き方がどう書いていいかわからなくて困っています
ついでに言うとこの考え方はあっているのかどうかもわかりません。
画像が切り替わるとき上に上がるときにはバーの上からマスクがか
かっており下におろしてる時は下からマスクがかかっているので、
どう考えればいいのか悩んでもいます。

どうかご指導お願いします。

そしてあつかましい話なのですができればサンプルのソースを
見せて欲しいのですが・・・
初心者ですが、がんばって作りたいのでよろしくお願いします。
ひろゆき
Åê¹ÆNo.17916
投稿日時: 2005-6-7 23:51
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: マスクを使った画像変更
引用:
考え方はバーの右上の部分の数値が下がるとdown上がるとup と
いう考え方をしているんですが、
スクリプトの書き方がどう書いていいかわからなくて困っています

「右上の部分の数値」というのは、バーのy座標ですよね?
この数値を見て、上がったか下がったかを判定するためには、
移動する前後の数値を比較する必要があるので、結構面倒だと思います。

そこで、this._parent._ymouse-this._y の値を見てはいかがでしょう?
onClipEvent (enterFrame) {
	movY = this._parent._ymouse-this._y;
	trace(movY);
	this._y += movY*0.2;
	top = this._y;
	bottom = this._y + 80;
}


引用:
画像が切り替わるとき上に上がるときにはバーの上からマスクがか
かっており下におろしてる時は下からマスクがかかっているので、
どう考えればいいのか悩んでもいます。

マスクに囚われると分からなくなります。
topやbottomの値を活用して、
各色のムービークリップの _yscale を変化させるのが当面の目標でしょう。
trace などで数値をチェックしていきましょう。


----------------
質問する際は、回答者に具体的な情報を与えてください。

Norichika
Åê¹ÆNo.17917
投稿日時: 2005-6-8 0:30
新米
居住地: 大阪
投稿: 13
使用環境:
macOS_10.3.8 , flashMX2004
Re: マスクを使った画像変更
ヒロユキ様
ありがとうございます!

これで考えればmovY<0とmovY>0で判定すればいいのですね!

これが出来たら次は真ん中の数字の制御にチャレンジしていきます! 
ひろゆき
Åê¹ÆNo.17918
投稿日時: 2005-6-8 2:00
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: マスクを使った画像変更
_root に ムービークリップ(インスタンス名: base) を配置。
base に、ムービークリップ(インスタンス名: bar・mask1?mask6) を配置。

base の 1フレーム目に
max = 6;

mask1?mask6 それぞれのムービークリップアクションに
onClipEvent (load) {
	this._y = 0;
	this._yscale = 0;
}

bar のムービークリップアクションに
onClipEvent (load) {
	this._y = 0;
	maskMax = _parent.max;
	moveFlag = "up";
	maskNum = 0;
	barHeight= 80;
}
onClipEvent (enterFrame) {
	movY = _parent._ymouse - this._y - barHeight/2;
	if (moveFlag == "up" && movY > 0) {
		moveFlag = "down";
		maskNum ++;
		if (maskNum > maskMax) {
			maskNum = 1;
		}
		startLine = this._y + barHeight;
		_parent["mask"+maskNum]._y = startLine;
		_parent["mask"+maskNum]._yscale = 0;
	} else if (moveFlag == "down" && movY < 0) {
		moveFlag = "up";
		maskNum ++;
		startLine = this._y;
		_parent["mask"+maskNum]._y = startLine;
		_parent["mask"+maskNum]._yscale = 0;
	}
	posY +=  movY/10;
	if (posY > barHeight/2) {
		this._y = posY - barHeight/2;
	} else {
		this._y = 0;
	}
	if (maskNum % 2 == 1) {
		endLine = this._y + barHeight;
	} else {
		endLine = this._y;
	}
	//確認用
	this.top = this._y;
	this.bottom = this._y + barHeight;
	this.startLine = startLine;
	this.endLine = endLine;
	this.moveLine = endLine - startLine;
	_parent["mask"+maskNum]._yscale = endLine - startLine;
}

青字部分がまとまっていないので、以下のように整理。
bar のムービークリップアクションに
onClipEvent (load) {
	this._y = 0;
	maskMax = _parent.max;
	moveFlag = -1;
	maskNum = 0;
	barHeight= 80;
}
onClipEvent (enterFrame) {
	movY = _parent._ymouse - this._y - barHeight/2;
	if (moveFlag*movY < 0) {
		moveFlag = -moveFlag;
		maskNum ++;
		if (maskNum > maskMax) {
			maskNum = 1;
		}
		startLine = this._y + barHeight*(1+moveFlag)/2;
		_parent["mask"+maskNum]._y = startLine;
		_parent["mask"+maskNum]._yscale = 0;
	}
	posY +=  movY/10;
	if (posY > barHeight/2) {
		this._y = posY - barHeight/2;
	} else {
		this._y = 0;
	}
	endLine = this._y + barHeight*(1+moveFlag)/2;
	_parent["mask"+maskNum]._yscale = endLine - startLine;
}

サンプル3」「サンプル4

以上、頑張ってください。

このあとは、大きく分けて3点。
1. 複数の外部jpgの読み込み。
 duplicateMovieClip で、読み込み用MCを複製。
 外部jpgの読み込み。読み込み完了の確認。
2. マスクの設定。
 attachMovie か duplicateMovieClipでマスクを複製。
 setMask で画像MCそれぞれにマスクをかける。
3. 一番上にくる画像の深度を最上部に。
 maskNum の画像をswapDepths

できない場合には、いきなり、このような複雑なものを制作するのではなく、
細かく動きを分けて、できるように前もって準備する必要があるでしょう。


----------------
質問する際は、回答者に具体的な情報を与えてください。

Norichika
Åê¹ÆNo.17924
投稿日時: 2005-6-8 13:24
新米
居住地: 大阪
投稿: 13
使用環境:
macOS_10.3.8 , flashMX2004
Re: マスクを使った画像変更
ひろゆき様
ソースまで見せてくれてありがとうございます。

初心者なのにいきなり複雑なものを作るのは1個1個
分けて考えたほうがいいみたいですね。
ソースを見ながら1個1個解決して行きます。

ひろゆき
Åê¹ÆNo.17925
投稿日時: 2005-6-8 13:34
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: マスクを使った画像変更
引用:
初心者なのにいきなり複雑なものを作るのは1個1個
分けて考えたほうがいいみたいですね。

例えば、「複数の外部jpgの読み込み」は、
2つの画像をloadMovieして読み込み待ち」で、
なさったことがあるわけですから、これを応用すればいいわけですね。
ですが、他の2点について手をつけたことがないとすれば、
このスレッドの主題からズレて、質問をせざるを得なくなってしまうでしょう。
先に進むたびに質問しなければならなくなるでしょう。

そもそも、Flashまるごとをどうやって作っているのでしょう?というのは、
Flashの制作依頼をされているのと同じだと思うのですが。


----------------
質問する際は、回答者に具体的な情報を与えてください。

Norichika
Åê¹ÆNo.17933
投稿日時: 2005-6-8 18:31
新米
居住地: 大阪
投稿: 13
使用環境:
macOS_10.3.8 , flashMX2004
Re: マスクを使った画像変更
ヒロユキ様

引用:

そもそも、Flashまるごとをどうやって作っているのでしょう?というのは、
Flashの制作依頼をされているのと同じだと思うのですが。

おっしゃる通りです。
よくよく考えるとあつかましい質問でした。
反省します

今後はよく観察してある程度仕組みがわかってから
わからない部分の質問をしていきます。

どうも申し訳ありませんでした。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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