obnizのフォーラムは新しいシステムに移行しております。

新しいフォーラムはこちらになります

io:animationの使い方



  • ステッピングモーターを制御する簡単なプログラムを書こうとしています。
    io:animationを使って回転を制御するのですが、io:animationの使い方がわからない部分があります。

    プログラムの概要
    web画面に、"clockwise"、"counter"、"stop"という3つのボタンがあり、それらを押すと"時計回り"、"反時計回り"、"停止"という動作をする。

    プログラムの主要部は次の通り:
    var clockwiseAnimation = [ 時計回りのanimation定義 ];
    var counterAnimation = [ 反時計回りのanimation定義];

    obniz.io.animation("clockwise", "loop", clockwiseAnimation);
    obniz.io.animation("clockwise", "pause");

    obniz.io.animation("counter", "loop", counterAnimation);
    obniz.io.animation("counter", "pause");

    $('#clockwise').click(function () {
    console.log("clocwise");
    obniz.io.animation("counter", "pause");
    obniz.io.animation("clockwise", "resume");
    });

    $('#counter').click(function () {
    console.log("counter");
    obniz.io.animation("clockwise", "pause");
    obniz.io.animation("counter", "resume");
    });

    $('#stop').click(function () {
    console.log("stop");
    obniz.io.animation("clockwise", "pause");
    obniz.io.animation("counter", "pause");
    });

    質問

    1. 現在のプログラムでは、animationを定義するときに
      obniz.io.animation("clockwise", "loop", clockwiseAnimation);
      obniz.io.animation("clockwise", "pause");
      というように、"loop"直後に”pause"を行なっていますが、一瞬動きそうで気持ち悪いコードになっています。この部分は他の書き方ができるでしょうか。

    2. もし2つのanimationを同時にresumeしてしまった場合、何が起きるのでしょうか。
      obniz.io.animation("clockwise", "resume");
      obniz.io.animation("counter", "resume");



  • @FUKUI-SHINGO 返信が遅くなってしまいすいません。

    質問1 について

    他の書き方がないので、アニメーション設定時にpauseの状態で設定できる機能を追加しようと思います。

    質問2について

    アニメーションが2つある場合は2つ同時に動きます。それぞれ同じIOを操作している場合、競合することがあります。



  • 回答いただきありがとうございます。
    pause状態でanimationを定義できるといいですね。

    ステッピングモーターを制御する場合、現在のanimation機構だと使いにくい部分がもう1つあります。

    ステッピングモーターを使う多くの場面では、モーターを何度回転するかを正確に制御したい場合が多いです。その場合、animationで指定したIOシーケンスを「1回だけ」とか「n回」とか回数を指定して実行する必要があります。

    現在のanimation機構だと実行回数を指定できないので、上記のようなプログラムを書けません。
    実行回数を指定してanimationを起動できると嬉しいです。



SUGGESTED TOPICS