Skip to content

Instantly share code, notes, and snippets.

@jin1016
Created July 3, 2014 16:08
Show Gist options
  • Save jin1016/954d5ffcb9fd6707d971 to your computer and use it in GitHub Desktop.
Save jin1016/954d5ffcb9fd6707d971 to your computer and use it in GitHub Desktop.
class videoRecodeHandler
{
var moving = false; // タイマーが始動しているかどうか
var lastTick;
var myLayer;
var frame;
function videoRecodeHandler() {
this.moving = false;
myLayer = new CharacterLayer( kag, kag.primaryLayer, "recode_layer", 1234 );
myLayer.setImageSize( kag.primaryLayer.imageWidth, kag.primaryLayer.imageHeight );
myLayer.setPos( 0, 0, kag.primaryLayer.imageWidth, kag.primaryLayer.imageHeight );
}
function finalize() { stop(); }
function start() {
if(moving==false) {
lastTick = System.getTickCount();
frame = 0;
System.addContinuousHandler(handler); // ContinuousHandlers に追加
moving = true;
}
}
function stop() {
if(moving) {
System.removeContinuousHandler(handler);
moving = false;
}
}
function handler(tick) {
var interval = tick - lastTick;
if( interval > 32 ) {
myLayer.piledCopy( 0, 0, kag.primaryLayer, 0, 0, myLayer.imageWidth, myLayer.imageHeight );
var filename = "%05d.bmp".sprintf( frame );
myLayer.saveLayerImage( filename, "bmp24");
frame++;
lastTick = tick;
}
}
}
kag.videRecHandler = new videoRecodeHandler();
kag.add( kag.videRecHandler );
kag.isRecodeVideo = false;
kag.onRecodeVideoMenuItemClick = function( sender )
{
if( isRecodeVideo ) {
videRecHandler.stop();
isRecodeVideo = false;
recodeVideoMenuItem.caption = "● 録画開始";
} else {
videRecHandler.start();
isRecodeVideo = true;
recodeVideoMenuItem.caption = "■ 録画停止";
}
} incontextof kag;
kag.debugMenu.add( kag.recodeVideoMenuItem = new KAGMenuItem(kag, "● 録画開始", 1, kag.onRecodeVideoMenuItemClick, false));
kag.recodeVideoMenuItem.enabled = true;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment