dispose_opを指定するとそのフレームで描画された内容を削除することができます。
#option,[default=画像ファイル名,]transparent=true,grayscale=false,numplays=0 フレーム0の画像,x_offset,y_offset,delay_num,delay_den,dispose_op,blend_op フレーム1の画像,x_offset,y_offset,delay_num,delay_den,dispose_op,blend_op フレーム2の画像,x_offset,y_offset,delay_num,delay_den,dispose_op,blend_op ...
dispose_opに指定できる値はnone、backgroundとpreviousです。 noneの場合は何もしません。 そのフレームで描画された内容はそのまま残ります。 backgroundの場合、描画された内容は削除されます。 アルファ値を使っている場合は透明で塗りつぶされ、透過無しの場合は黒で塗りつぶされます。 previousの場合、そのフレームを描画する前の状態に戻されます。 ただし、フレーム0でpreviousにした場合はbackgroundにした場合と同様の結果になります。 2ループ目でも最後のフレームの状態には戻りません。
dispose_opが適用される範囲はフレーム画像のサイズのみです。 フレーム画像がデフォルト画像より小さい場合、 dispose_opの処理はフレームの外には影響しません。
csvファイルへの記入を省略した場合、デフォルト値はnoneになります。
dispose_opの処理が実行されるタイミングはdelayの後です。
フレーム0 |
フレーム0の画像を描画 delay フレーム0の画像を破棄(dispose_op) |
フレーム1 |
フレーム1の画像を描画 delay フレーム1の画像を破棄(dispose_op) |
... | ... |
フレームn |
フレームnの画像を描画 delay フレームnの画像を破棄(dispose_op) |
dispose_opの値を変えた場合のサンプルを以下に示します。
例) sample4.csv ... dispose_opはnone、empty.pngは一色で塗りつぶした画像
empty.png image0.png,0,0,,,none image0.png,16,16,,,none image0.png,32,32,,,none image0.png,48,48,,,none image0.png,64,64,,,none image0.png,80,80,,,none image0.png,96,96,,,none image0.png,112,112,,,none image0.png,128,128,,,none
sample5.csvはdispose_opの値をbackgroundに変更したもの、 sample6.csvはdispose_opの値をpreviousに変更したものです。 下の表では透過が分かりやすくなるようにhtmlの背景画像を使っています。
background-image :
sample4.png dispose_op=none |
sample5.png dispose_op=background |
sample6.png background=previous |
![]() |
![]() |
![]() |
Opera9.5betaなど、対応ブラウザで見るとアニメーションしています。