请问AS3.0怎么用影片里的按钮控制舞台上几个MC之间的切换?

点击按钮时需要记录当前正在播放的MC所在的帧数,当点击按钮跳转到另一个MC时,从记录的帧数开始播放。我只会写2.0的。有人能帮忙写个3.0的代码吗?谢谢啦!2.0代码如下... 点击按钮时需要记录当前正在播放的MC所在的帧数,当点击按钮跳转到另一个MC时,从记录的帧数开始播放。我只会写2.0的。有人能帮忙写个3.0的代码吗?谢谢啦!
2.0代码如下:5个影片分别用C、d、e、f、g命名,5个按钮分别用anniu1-5_w命名。
5个影片放在舞台时间轴同一帧上,通过一个MC中的5个按钮来控制。下面的代码写在装有5个按钮的MC的第一帧上。

//影片1
this.anniu1_w.onPress = function() {
zhenshu = int(_root.c._currentframe);

_root.c._visible = true;
_root.d._visible = false;
_root.e._visible = false;
_root.f._visible = false;
_root.g._visible = false;
_root.c.gotoAndPlay(zhenshu-1);//由于计算的帧数比实际多一帧所以用-1
};
//影片2
this.anniu2_w.onPress = function() {
zhenshu = int(_root.c._currentframe);

_root.c._visible = false;
_root.d._visible = true;
_root.e._visible = false;
_root.f._visible = false;
_root.g._visible = false;
_root.d.gotoAndPlay(zhenshu-1);
};
//影片3
this.anniu3_w.onPress = function() {
zhenshu = int(_root.c._currentframe);

_root.c._visible = false;
_root.d._visible = false;
_root.e._visible = true;
_root.f._visible = false;
_root.g._visible = false;
_root.e.gotoAndPlay(zhenshu-1);
};
//影片4
this.anniu4_w.onPress = function() {
zhenshu = int(_root.c._currentframe);

_root.c._visible = false;
_root.d._visible = false;
_root.e._visible = false;
_root.f._visible = true;
_root.g._visible = false;
_root.f.gotoAndPlay(zhenshu-1);
};
//影片5
this.anniu5_w.onPress = function() {
zhenshu = int(_root.c._currentframe);

_root.c._visible = false;
_root.d._visible = false;
_root.e._visible = false;
_root.f._visible = false;
_root.g._visible = true;
_root.g.gotoAndPlay(zhenshu-1);
};

虽然这个2.0代码能够实现我需要的功能,但这个办法感觉有点笨。有没有高手能帮忙译成3.0的代码,如果有更好的写法也请赐教。谢谢!
展开
 我来答
匿名用户
2013-01-23
展开全部
//AS2.0:
for(var i:Number = 1; i<6;i++){
this["anniu" + i + "_w"].onPress = function():Void{
setV(this._name.split("_")[0].split("anniu")[1]);
}
}

function setV(value:String):Void{ var arr:Array = ["c","d","e","f","g"];
value = arr[int(value)-1];
for(var i in arr){
if(value == arr[i]){
_root[value]._visible = true;
_root[value].prevFrame();
_root[value].play();
} else {
_root[arr[i]]._visible = false;
_root[arr[i]].stop();
}
}
}

//AS3.0
for(var i:Number = 1; i<6;i++){
this["anniu" + i + "_w"].addEventListener(MouseEvent.CLICK, onClick);
}

function onClick(
_evt:MouseEvent):void{ var id:uint = uint(_evt.currentTarget.name.split("_")[0].split("anniu")[1]);
setV(id);
}

function setV(value:uint):void{
var arr:Array = ["c","d","e","f","g"];
var str:String = arr[value-1];
for(var i in arr){
if(str == arr[i]){
root[str].visible = true;
root[str].prevFrame();
root[str].play();
} else {
root[arr[i]].visible = false;
root[arr[i]].stop();
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式