スクリプト
Ambersprite には、繰り返しのピクセル作業のための小さな JavaScript コンソールがあります。編集 ▸ スクリプト で開きます。

スクリプトを入力し、実行 をタップします。アクティブなレイヤー + フレーム に描画し、「Script」という名前の 1 つの取り消しステップとして確定します。クリア はエディターを空にします。
API#
| 関数 | 説明 |
|---|---|
setPixel(x, y, r, g, b, a) | (x, y) のピクセルを RGBA 色(各 0–255)に設定。 |
getPixel(x, y) | ピクセルの [r, g, b, a] を返す。 |
fill(x, y) | (x, y) から現在の前景色で塗りつぶし。ツールの隣接 / 許容値 / ディザリング設定に従う。 |
fg(r, g, b, a) | 前景色を設定。 |
setLayer(index) | アクティブなレイヤーを変更。 |
setFrame(index) | アクティブなフレームを変更。 |
newLayer() | レイヤーを追加。 |
command("name") | キーボードショートカットのコマンドを名前で実行("undo"、"flipH"、"play"、…)。 |
log(message) | 出力エリアに書き込む。 |
| 値 | 説明 |
|---|---|
width, height | キャンバスサイズ。 |
layerCount, frameCount | 数。 |
layerIndex, frameIndex | アクティブなインデックス。 |
layerName | アクティブなレイヤー名。 |
setPixel と fill は常に、「実行」を押した時点で アクティブだったレイヤー + フレームを対象にします — スクリプトの途中で setLayer() / setFrame() を呼ぶと、現在の描画対象ではなく 次の 実行のためのアクティブな選択が変わります。複数のレイヤーを塗るには、タイムラインでそれぞれを選び、その独自のスクリプトを実行します。
例#
市松模様を描く:
for (var y = 0; y < height; y++)
for (var x = 0; x < width; x++)
if ((x + y) % 2 === 0) setPixel(x, y, 40, 40, 60, 255);
輪郭のある領域を前景色で塗る:
fg(230, 120, 60, 255);
fill(width / 2, height / 2);
log("done");
塗りつぶし矩形のヘルパー:
function rect(x0, y0, x1, y1, r, g, b) {
for (var y = y0; y <= y1; y++)
for (var x = x0; x <= x1; x++) setPixel(x, y, r, g, b, 255);
}
rect(4, 4, 12, 20, 60, 122, 204);