D0812111 >>無題<<
Name スズキ
Date 2008年12月11日 (木) 14時23分
Message お世話になります。

戻る・進むボタンと数字のボタンを連動させた画像をスクロールを
以下のページを参考に作成させていただきました。

http://www.geocities.jp/jin_toyama/pages3/testslide1/testslide1a.html

1〜9の数字は、オン/オフは色が反転しますが、画像が移動して止まったときに、
今自分のいる場所の数字をオンしたいのですが、どのようにすればいいのでしょうか?
ご教授くださいますでしょうか。よろしくお願いします。
Response 01
2008年12月12日 (金) 02時07分> joy 
TOYAMAさんのスクリプトを、以下のように改変すると、f_btnとb_btnを押すたびに、番号の色が変化します。
1)番号のボタン(my_btn)をMCに変えて、シンボル編集画面内の第一フレームに、
this.stop();
と記載します。
2)シーンに戻り、第一フレームのactionを以下のように改変します。
import mx.transitions.Tween;
var x1 = thum_mc._x;
var w = 140;
var n = 1;
function moveTo() {
gotoAndPlay("p"+n);
if (n == 1) {
var myTween:Tween = new Tween(thum_mc, "_x", mx.transitions.easing.Strong.easeOut, thum_mc._x, 86, 2, true);
} else {
var d = 86-(n-1)*140;
var myTween:Tween = new Tween(thum_mc, "_x", mx.transitions.easing.Strong.easeOut, thum_mc._x, d, 2, true);
}
}

//以下改変部分
btn1.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {//1から9のボタンMCを第一フレームに戻す
_root["btn"+i].prevFrame();
}
this.nextFrame();//但し、btn1は、第二フレームに移動させ、色を変更させる
n = 1;
moveTo();
};
btn2.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {//以下同様
_root["btn"+i].prevFrame();
}
this.nextFrame();//但し、btn2は、第二フレームに移動させて、色変更、以下同様
n = 2;
moveTo();
};
btn3.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
n = 3;
moveTo();
};
btn4.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
n = 4;
moveTo();
};
btn5.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
n = 5;
moveTo();
};
btn6.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
n = 6;
moveTo();
};
btn7.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
n = 7;
moveTo();
};
btn8.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
n = 8;
moveTo();
};
btn9.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
n = 9;
moveTo();
};

f_btn.onRelease = function() {
n++;
for(var i:Number=(n-1);i<=9;i++){//n-1(=1)から9までのbtnを第一フレームに戻す
_root["btn"+i].prevFrame();
}
_root["btn"+n].nextFrame();//"btn"+n は、次のフレームに移動させて、色を変更させる

if (n>9) {
n = 1;
btn1.nextFrame();//btn1の色変更
}
moveTo();
};
b_btn.onRelease = function() {
n--;
for(var i:Number=(n+1);i>=1;i--){
_root["btn"+i].prevFrame();
}
_root["btn"+n].nextFrame();

if (n<1) {
n=9;
btn9.nextFrame();
}
moveTo();
};
となります。
試してみてください。

*btnをボタンからMCに変更した際に、シーン上のプロパティも、ムービークリップに変更することを、お忘れなく。
Response 02
2008年12月12日 (金) 14時08分> スズキ 
できました。ありがとうございました。
Response 03
2008年12月15日 (月) 20時30分> スズキ 
すみません。もう一つ質問よろしいでしょうか。
ボタンをMCに変えたらオンマウスで色が変わらないのですが、
ボタンのようにオンマウスで色を変えるには
どのようにしたらよいのでしょうか。
よろしくお願いします。
Response 04
2008年12月15日 (月) 21時29分> joy  del
btn1.onRelease = function() {
for (var i:Number = 1; i<=9; i++) {//1から9のボタンMCを第一フレームに戻す
_root["btn"+i].prevFrame();
}
this.nextFrame();//但し、btn1は、第二フレームに移動させ、色を変更させる
n = 1;
moveTo();
};

btn1.onRollOver = function() {
for (var i:Number = 1; i<=9; i++) {
_root["btn"+i].prevFrame();
}
this.nextFrame();
};
btn1.onRelease = function() {
n = 1;
moveTo();
};

のように、ロールオーバーとリリースに分割して記載すれば、行けると思います。
Response 05
2008年12月16日 (火) 14時44分> スズキ 
ありがとうございます。オンマウスで色が変わるになりました。
ただ、自分のいる位置がわからなくなってしまうようになりました。
たとえば、1をクリックして、1がオンになって、1にいるときに、
2にオンマウスすると、1のオンが消えてしまいます。
1にいるときは、他の数字をオンマウスして色が変わっても、
1はオンのまま、ということはできないでしょうか。
たびたび恐れ入ります。よろしくお願いします。
Response 06
2008年12月17日 (水) 00時18分> joy 
スズキさん、
たとえば、1をクリックして、1がオンになって、1にいるときに、2にオンマウスすると、1のオンが消えてしまいます。1にいるときは、他の数字をオンマウスして色が変わっても、1はオンのまま、ということはできないでしょうか。

以下で、ご要望の動きになります。


//以下が私の変更部分です
//ロールオーバー、ロールアウト時の、制御変数の定義領域
var Check1 = Check2=Check3=Check4=Check5=Check6=Check7=Check8=Check9=false;
//9つもあるので、for文で短縮記載
for (var i:Number = 1; i<=9; i++) {
var mc:MovieClip = _root["btn"+i];//mcで参照
mc.id = i;//i をmc.idに保管
mc.onEnterFrame = function() {
//nが this,idか_root["Check"+this.id]がtrueになるか、いずれかの場合、次のフレームに移動して停止
if (n == this.id || _root["Check"+this.id]) {//this,idにしないで、i にすると、i=9が代入されるので、注意
this.nextFrame();
} else {
this.prevFrame();
}
};
mc.onRollOver = function() {//ロールオーバー時は、true
_root["Check"+this.id] = true;
};
mc.onRollOut = function() {//ロールアウト時は、false
_root["Check"+this.id] = false;
};
mc.onRelease = function() {//クリックされたら、nにthis.idを代入して、カスタム関数を動かす
n = this.id;
moveTo();
};
}

f_btn.onRelease = function() {
n++;
for (var i:Number = (n-1); i<=9; i++) {
_root["btn"+i].prevFrame();
}
_root["btn"+n].nextFrame();

if (n>9) {
n = 1;
btn1.nextFrame();
}
moveTo();
};
b_btn.onRelease = function() {
n--;
for (var i:Number = (n+1); i>=1; i--) {
_root["btn"+i].prevFrame();
}
_root["btn"+n].nextFrame();

if (n<1) {
n = 9;
btn9.nextFrame();
}
moveTo();
};
となります。
Response 07
2008年12月17日 (水) 14時56分> スズキ 
ありがとうございます。やりたかったことができました。
とても助かりました。

このページの先頭へ