D0811282 一定の変数値で、MCに変化をつける
Name セビラス
Date 2008年11月28日 (金) 12時02分
Message みなさん、こんにちは。Flash初心者です。
今回は、一定の数値で画像の色が変化させるスクリプトで
苦戦をしていますので、どうか知恵を貸していただけないでしょうか。


まず私は「FlashMotion2」というソフトを使っています。
※下に画像のURL貼ったけど、よくわからないかも。

■現在使用しているシンボルは3つ。
それらを1つのレイヤーに貼り付けています。

@テキストタイプ(あえて白色と言います)
 名前:Num  インスタンス名:シンボル1
Aボタンタイプ(青色)
 名前:btn  インスタンス名:シンボル2
Bムービークリップタイプ(黒色)
 名前:maru インスタンス名:シンボル3


■アクションスクリプト■

キャンバス自体には・・・
1 stop();
2 
3 var cnt:Number = 0;


Aのボタンには・・・
1 on(release)
2 {
3   Number = cnt++ ;
4   trace(cnt);
5}


Bのムービークリップですが、ボタンが貼ってあるレイヤーに貼る前に
タイムラン1には黒(フレームラベル:無記入)、
タイムラン2には赤(フレームラベル:red)の塗り潰し円を描き、
各アクションパネルに・・・
1 this.stop();

このムービークリップを、ボタンが貼ってあるレイヤーに貼り付けた後、
1 if(Number == 5){
2 gotoAndStop(red);
3 }



と、この様に入力して、
青いボタンを押せば、1・・・2・・・3と表示してくれるのですが、
5になった時に黒色の円が赤色に変化しないのです。
どのようにして、赤色に変化させるのでしょうか?

私の説明を解読する方が難しいかもしれませんが、
よろしくお願い致します。
Home or Link http://nana-house.cocolog-nifty.com/photos/uncategorized/2008/11/28/hari01.jpg
Response 01
2008年11月28日 (金) 22時55分> joy 
FreeMotion2の作法は知りませんが、クリップアクション・ボタンアクションが有効と仮定して、

キャンバス自体には・・・
1 stop();
2 
3 var cnt:Number = 0;


Aのボタンには・・・
1 on(release)
2 {
3   cnt++ ;//定義した変数をカウントアップ
4   trace(cnt);
5}


Bのムービークリップですが、ボタンが貼ってあるレイヤーに貼る前に
タイムラン1には黒(フレームラベル:無記入)、
タイムラン2には赤(フレームラベル:red)の塗り潰し円を描き、
各アクションパネルに・・・
1 this.stop();

このムービークリップを、ボタンが貼ってあるレイヤーに貼り付けた後、
このムービークリップへの、クリップアクションで、
onClipEvent (enterFrame) {
if(_parent.cnt==5){//_rootの変数cntが5になったなら、
this.gotoAndStop("red");//自らのフレーム名 "red"に移動して停止する
}
}
となります。
Response 02
2008年11月29日 (土) 15時34分> セビラス 
joyさん>
ご回答有難う御座います。

joyさんから教えて頂きましたアクションスクリプト、
if(_parent.cnt==5){
このままだと4が表示された時に赤くなってしまったのですが、
cntをNumberに書き換えましたら、きちんと5の表示で赤く変化しました。

改めて、有難う御座いました。
Response 03
2008年11月29日 (土) 16時11分> joy 
Aのボタンには・・・
1 on(release)
2 {
3   Number = cnt++ ;
4   trace(cnt);
5}

Aのボタンには・・・
1 on(release)
2 {
3   cnt++ ;//定義した変数をカウントアップ
4   trace(cnt);
5}
とし、
このムービークリップへの、クリップアクションで、
onClipEvent (enterFrame) {
if(_parent.cnt==5){//_rootの変数cntが5になったなら、
this.gotoAndStop("red");//自らのフレーム名 "red"に移動して停止する
}
}
とすれば、
5回目で、redに移動するはずです。

尚、同じNumberでも、意味が異なるので、2番目のNumberは不要だと思います。
キャンバス自体には・・・
1 stop();
2 
3 var cnt:Number = 0;//変数 cntを、strictな型宣言(Number)で、定義し、初期値は0の意味


Aのボタンには・・・
1 on(release)
2 {
3   Number = cnt++ ;//変数 ctnの増分を、型宣言しない変数 Numberに代入の意味で、一度cntで変数定義してるので、ここで、Numberに代入する必要はないでしょう。
4   trace(cnt);
5}
Response 04
2008年11月30日 (日) 15時28分> セビラス   
joyさん>
あ、そうなるのですか。
よくよく確かめないと、ややこしくなってしまいますね。
細かい所まで、有難う御座います。

このページの先頭へ