作者sextitanic (阿信163)
看板Flash
标题Re: [问题] AS2 按钮重复按有不同结果?
时间Mon Jul 19 22:10:10 2010
※ 引述《s24601 (24601)》之铭言:
: 比如说按第一次是让影片元件A播放
: tellTarget ("A") {
: play();
: }
: 按了第二次变成让B播放
: tellTarget ("B") {
: play();
: 但不知道在动作那边要点什麽才有办法这样
: 请问有人知道吗
哦哦,应该是我之前回覆有误,让原 po 误会了
应该是要说 this["元件名"+变数].play(); 才对
以下单就 2 个影片片段的情形来讲
因为後来也不鼓励把程式写在元件上面
所以我这边就改成写在时间轴上的写法,不过其实没什麽差
假设控制播放的按钮你取叫「play_btn」
一、if 判断法
var boo:Boolean = false;//布林函数,只有 false or true
play_btn.onRelease = function(){
if(boo == false){//如果是 false 就播 A1
A1.play();
boo = true; //然後把它设成 true,这样下次就会去播 A2
}else{
A2.play();
boo = false;
}
}
如果另一个要播放另一个要停止的时候就给它加个 stop();
二、另一位大大说的取余数方法,这边我直接用很多个不同影片片段要播放举例
假设有 20 个影片片段要轮流按了会播放,1个播放其他都会停
影片片段名称命名为 A1、A2.....A19、A20
var mcTotal:Number = 20;//将有几个影片片段独立出来,方便修改
var nowPlay:Number = 0;//这是决定要让哪一个影片片段来跑
play_btn.onRelease = function(){
nowPlay = nowPlay % mcTotal + 1;
//因为设名字是 1 开始,而 nowPlay 初始值为 0,故取余数後再 +1决定控制的影片
//+1 是避免当nowPlay = 20,20 % 20 为0,会找不到要 play 的影片
for(var i:Number=1; i<=mcTotal; i++){
if(nowPlay == i){//如果 nowPlay = i 就播放,其他则停止
this["A"+i].play();
}else{
this["A"+i].stop();
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.191.178
1F:→ diabloevagto:其实我也不知道取余数可不可以说...只是刚好看到楼上 07/19 22:54
2F:→ diabloevagto:的说可以加数字... 07/19 22:54
3F:推 s24601:太酷了我来研究一番!!!!!感谢高手!!!!! 07/20 01:28