受大家,尤其是200398sb40whb的启发,我用自定义函数和调用、删除函数写出了代码。如下:
文本剪辑的实例名是text_mc,快速向上移动t和快速向下移动的按钮的实例名是up_btn,限制舞台高度是550.
function yd() {
if (text_mc._y>0) {
text_mc._y -= 2;
} else {
text_mc._y = 550;
}
}
//常速上移
function up() {
if (text_mc._y>0) {
text_mc._y -= 5;
} else {
text _mc._y = 550;
}
}
//快速上移
function down() {
if (text_mc._y<550) {
text _mc._y += 5;
} else {
text_mc._y = 550;
}
}
diyi = setInterval(yd, 80);
up_btn.onPress = function() {
clearInterval(diyi);
dier = setInterval(up, 80);
};
up_btn.onRelease = function() {
clearInterval(dier);
diyi = setInterval(yd, 83);
};
down_btn.onPress = function() {
clearInterval(diyi);
disan = setInterval(down, 80);
};
down_btn
自由控制文本型剪辑.swf (8.32 KB)
.onRelease = function() {
clearInterval(disan);
diyi = setInterval(yd, 83);
};
text_mc.onEnterFrame = function() {
if (text_mc.hitTest(_xmouse, _ymouse, true)) {
clearInterval(diyi);
text_mc._y += 0;
} else {
yd();
}
};
可是毛病出来了,反复实验,达不到暂停的效果。
我用的暂停代码是:
_mc.onEnterFrame=function(){
if(_mc.hitTest(_xmouse,_ymouse,true)){
_mc._y+=0;
}else{
diyi=setInterVal(yd,80)
}
}
如果把最后的“否则”语句换成下面的代码,就可以了:
else{
yd();
}
真不知道是为什么?请高手指点。