0

私はAdobeEdgeで働いています。ステージにはv1、v2、v3の3つのボタンがあります。ボタンをクリックすると、タイムライン上を移動します。

ボタン1をクリックすると、タイムライン上を移動し、ボタン2が有効になり、ボタン1と3が無効になります。

ボタン2をクリックすると、タイムライン上を移動し、ボタン3が有効になり、ボタン1と2が無効になります。

ボタン3をクリックすると、タイムライン上を移動し、ボタン1が有効になり、ボタン2と3が無効になります。

bind()とunbind()を使用しようとしましたが、最初のボタンで機能します。ただし、3番目のボタンのバインドが解除されるため、タイムラインでボタン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 に答える