0

我在 Adob​​e Edge 中工作。我在舞台上有 3 个按钮:v1、v2、v3。单击按钮时,它们会在时间轴上移动。

单击按钮 1 时,它会在时间线上移动并显示按钮 2 已启用,按钮 1 和 3 已禁用。

单击按钮 2 时,它会在时间线上移动并显示按钮 3 已启用,按钮 1 和 2 已禁用。

单击按钮 3 时,它会在时间线上移动并显示按钮 1 已启用,按钮 2 和 3 已禁用。

我尝试使用 bind() 和 unbind() 并且它适用于第一个按钮。但是,由于它取消绑定第三个按钮,所以当我到达时间轴上应该启用按钮 3 的位置时,它被禁用。我尝试在按钮 2 的单击事件中再次绑定该按钮,但不起作用。我该如何处理?

sym.$("v1").click(function() {
sym.play("p1"); 
sym.$("v1").unbind("click");
sym.$("v3").unbind("click");

});


sym.$("v2").click(function() {
sym.play("p2");
sym.$("v1").unbind("click");
sym.$("v2").unbind("click");
sym.$("v3").bind("click");

});


sym.$("v3").click(function() {
sym.play("p3"); 
sym.$("v1").bind("click");
sym.$("v2").unbind("click");
sym.$("v3").unbind("click");

});
4

2 回答 2

1

它应该工作。祝你好运

sym.$("v1").click(function() {
    func(1, 2);    
});    
sym.$("v2").click(function() {
    func(2, 3);    
});
sym.$("v3").click(function() {
    func(3, 1);    
});    

function func(i, next) {
    var nextnext = ((next+1)%3 == 0) ? 3 : (next+1)%3;

    sym.play("p"+i);

    sym.$("v1").unbind("click");
    sym.$("v2").unbind("click");
    sym.$("v3").unbind("click");
    sym.$("v"+ next).bind("click", function() { func(next, nextnext); }); 
}
于 2012-06-28T20:03:54.077 回答
0

只是例子

sym.$("#v1, #v2, #v3").bind("click", myFunction);

function myFunction() {
    var id = sym.$(this).attr("id");
    var i  = id.substr(1,3);
    var next = ((i+1)%3 == 0) ? 3 : (i+1)%3;

    sym.play("p"+i);

    sym.$("#v1, #v2, #v3").unbind("click");
    sym.$("#v"+ next).bind("click", myFunction);   
}

它已经过验证

于 2012-06-28T19:00:04.307 回答