Blinking レンダラー

Blinking レンダラーは、グラフィック・オブジェクトで色または可視性を明滅させる便利な API を提供します。 これにより、以下のように、可視性の明滅を設定したすべてのグラフィック・オブジェクトに対して、同じタイミングを指定できます。
SDM {
    Blinking : "true";
}
Blinking {
    onPeriod : 1000;   // Every second
    offPeriod : 1000;  // Every second
}
明滅は、以下のように、CSS においてさまざまな方法で定義できます。
  • 色の切り替え
    クラス IlvBlinkingColor および IlvBlinkingMultiColor は、明滅色を表します。 これらは、明滅をサポートするグラフィック・オブジェクトの各種プロパティーの色として使用できます。
    以下の例では、CSS で明滅色を指定する方法を示します。
    @|blinkinColor(color1,color2)
    @|blinkinColor(color1,color2,color1Timing,color2Timing)
    Bcolor1Timing/color2Timimg[color1/color2]
    Btiming[color1/color2/color3/...]
    最初の 2 行は、Blinking レンダラーがインストールされている場合にのみ機能します。 最初の行は、Blinking レンダラーから取得した色の、タイミング付き明滅色を作成します。 2 行目および 3 行目は本質的に等価です。4 行目では、複数のサブ色を使用した明滅色を作成しています。 なお、Blinking レンダラーは該当する構文を使用可能にするだけであり、明滅効果にとって必要ではありません。 3 行目および 4 行目は、Blinking レンダラーがインストールされていない場合でも機能します。
    以下に具体例を示します。
    色の明滅
    node {
         class: "ilog.views.sdm.graphic.IlvGeneralNode";
         label: "@name";
         // toggles from red to black (2 states)
         fillColor1: "B1000/1000[red/black]";
         // toggles from red to yellow (2 states)
         fillColor2: "@|blinkingColor(red,yellow)";
         // toggles from black to transparent red to yellow (3 states)
         labelColor: "B500[black/#aaff0000/yellow]";
     }
  • ペイントの切り替え
    クラス IlvBlinkingPaint および IlvBlinkingMultiPaint は、明滅ペイントを表します。 これらは、明滅をサポートするグラフィック・オブジェクトの各種プロパティーのペイントとして使用できます。 明滅ペイントは、Blinking レンダラーがインストールされていない場合でも機能します。
    以下の例では、CSS で明滅ペイントを指定する方法を示します。
    ペイントの明滅
    node {
        class: "ilog.views.graphic.IlvGeneralPath";
        fillPaint: "@=fillPaint";
        fillOn: "true";
    }
    Subobject#fillPaint {
        class: "ilog.views.util.java2d.IlvBlinkingPaint(onPaint,offPaint,onPeriod,offPeriod)";
        onPaint: "@#onPaint";
        offPaint: "@#offPaint";
        onPeriod: "1000";
        offPeriod: "1000";
    }
    Subobject#onPaint {
        class: "java.awt.GradientPaint(point1,color1,point2,color2)";
        point1: "0.0,0.0";
        color1: "white";
        point2: "72.0,72.0";
        color2: "255,0,51";
    }
    Subobject#offPaint {
        class: "java.awt.GradientPaint(point1,color1,point2,color2)";
        point1: "0.0,0.0";
        color1: "255,0,51";
        point2: "72.0,72.0";
        color2: "white";
    }
    
  • 可視性の切り替え
    レンダラー・プロパティー ToggleVisibility は、オブジェクト全体の可視性を定期的に切り替えます。 明滅のタイミングは、Blinking レンダラーから取得されるため、 この指定は、Blinking レンダラーがインストールされていて使用可能になっている場合にのみ機能します。
    可視性点滅
    node {
        class: "ilog.views.sdm.graphic.IlvGeneralNode";
        ToggleVisibility: "true";
    }
    
    この指定を使用する場合は、すべてのオブジェクトで同じタイミングを使用して可視性が切り替えられます。 ノードごとに個別のタイミングを指定することもできます。これには、Blinking レンダラーがインストールされている必要はありません。 これを以下の例で示します。
    node {
        class: "ilog.views.sdm.graphic.IlvGeneralNode";
        blinkingOnPeriod: 1000;
        blinkingOffPeriod: 1000;
    }
    
以下の表に、Blinking レンダラーのグローバル・プロパティーをリストします。
Blinking レンダラーのグローバル・プロパティー
プロパティー
タイプ
デフォルト
説明
onPeriod
整数
1000
blinkingColor 関数で指定された最初の色の期間、 または、ToggleVisibilitytrue に設定されている場合は可視の期間 (ミリ秒)
offPeriod
整数
1000
blinkingColor 関数で指定された 2 つ目の色の期間、 または、ToggleVisibilitytrue に設定されている場合は不可視の期間 (ミリ秒)
以下の表に、Blinking レンダラーのオブジェクトごとのプロパティーをリストします。
Blinking レンダラーのオブジェクトごとのプロパティー
プロパティー
タイプ
デフォルト
説明
ToggleVisibility
ブール値
false
このプロパティーの値が true の場合は、グラフィック表示は可視性を切り替えます。
詳しくは、クラス IlvBlinkingRenderer を参照してください。