水平、垂直ボックスを動的に配置する方法
対象製品
Elixir Report 8.7J
詳細
水平ボックス、または垂直ボックスの位置をスクリプトから動的に変更する場合は、ボックスに含まれるセルの位置も再設定する必要があります。これはスクリプトにてボックスのみを移動した場合、セルの位置は移動されないためです。また、ボックスが持つ矩形領域外は背景と同色で描画されます。
下記のサンプルコードは、水平ボックスの水平位置(左座標)を変更するとともに、各セルを調整する場合のコードです。このコードは水平ボックスの[On Render Begin]へ設定します。
■サンプルコード
// 水平ボックスに設定する左座標(tw)
var hbox_left = 1500;
// 水平ボックスに含まれるセルをずらす値を算出(現在の左座標-設定する左座標)
var hbox_diff = getLeft() - hbox_left;
// 水平ボックスに含まれるセル数の取得
var childnum = getCellCount();
// セル数のループ
for (i = 0; i < childnum; i++){
// セルの左座標を設定する(現在のセルの左座標-ずらす値)
getCell(i).setLeft(getCell(i).getLeft() - hbox_diff);
}
// 水平ボックスの左座標を設定
setLeft(hbox_left);
下記のサンプルコードは、水平ボックスの水平位置(左座標)を変更するとともに、各セルを調整する場合のコードです。このコードは水平ボックスの[On Render Begin]へ設定します。
■サンプルコード
// 水平ボックスに設定する左座標(tw)
var hbox_left = 1500;
// 水平ボックスに含まれるセルをずらす値を算出(現在の左座標-設定する左座標)
var hbox_diff = getLeft() - hbox_left;
// 水平ボックスに含まれるセル数の取得
var childnum = getCellCount();
// セル数のループ
for (i = 0; i < childnum; i++){
// セルの左座標を設定する(現在のセルの左座標-ずらす値)
getCell(i).setLeft(getCell(i).getLeft() - hbox_diff);
}
// 水平ボックスの左座標を設定
setLeft(hbox_left);
キーワード
HowTo