Twojs мигающий круг - PullRequest
       19

Twojs мигающий круг

0 голосов
/ 24 сентября 2018

Я работаю над графическим редактором.Мне нужно выделить круг, и сделать этот круг в центре экрана, и установить масштаб увеличения на 2. Если круг уже выделен, чтобы установить его, переключите его и установите как нормальный круг.Мне нужно по крайней мере заставить круг мигать, прежде чем выключить его.

Я не понимаю, как заставить круг мигать.Может кто-то, кто знает о "two.js", как это сделать.Я знаю, что это в функции two.update ();

    // Render loop
var temps = 0;
two.bind('update', function(){
    if  (selectedNodes.length > 0){
        if (temps > 0) {    
            temps -= 0.02;
            for(var i = 0; i < selectedNodes.length; i++){
                selectedNodes[i].circle.fill = 'yellow';
                selectedNodes[i].circle.scale = 1.3;
                selectedNodes[i].circle.stroke = "red";
                selectedNodes[i].circle.linewidth = 2;
            }
        } else {
            for(var i = 0; i < selectedNodes.length; i++){
                selectedNodes[i].circle.fill = '#FF8000';
                selectedNodes[i].circle.scale = 1;
                selectedNodes[i].circle.noStroke();
            }
        }
    }
});

и для запуска мигания

function Blink(){
    temps = 1;
}

это лучший способ, чтобы мигать (даже если онмигает только один раз)

вот JsFiddle https://jsfiddle.net/hichem147/uf0b82ry/

Чтобы использовать его: нажмите [(+) Node], затем создайте несколько узлов, затем нажмите [Select] и нажмитепо кругу и нажмите кнопку [Blink].

1 Ответ

0 голосов
/ 25 сентября 2018

Наконец, я использовал setTimeout и setInterval

    function MakeCircleBlink(){
      var count = 5;

      if (count > 0) {
         var x = setInterval(function(){ 
            count--;
            console.log(count);
            if (count ===0) {clearInterval(x);}
            blink(); 
          }, 1000);  


      }  
    }

    function blink(n){
      n--;
    circle1.stroke = 'red';
    circle1.linewidth = 4;
    circle1.scale = 1.0;

    setTimeout(function(){ circle1.noStroke(); circle1.scale = 1;}, 500);
    }

, и вот кодовая ручка, показывающая, как это работает: https://codepen.io/hichem147/pen/jvjKzP?editors=0010

...