周期的に実行させる

sheduleTaskを使用して、周期的に実行させることが可能。

sheduleTask(function , time ,bool);

となっているので、最後の引数をtrueとすると、time毎にfunctionを実行してくれる。

この繰り返しを中断するには、sheduleTask実行の返り値を取っておいて、cancelTaskの引数として渡す。

ただし、sheduleTaskは実行毎(functionの実行毎ではない)に、通し番号を返すので以下のようにすると

doFunctionボタンを2回以上クリックすると、最新のsheduleTaskの返り値しかcancelTaskに渡していないので

それ以前のtaskが終了しない。

(function (){//scheduleTaskの返り値の保存用var taskID = 0;//実行させる関数var myFunc = function (){ app.project.items.addFolder('hoge ' + taskID); }//実行ボタンをクリックした時の関数var doFunc = function (){ taskID = app.scheduleTask('myFunc()', 500, true); }//キャンセルした時の関数var doCancel = function (){ app.cancelTask(taskID); }var w = new Window('palette', 'hoge' , [100,100, 330,150]);var btn_do = w.add('button' ,[10,10,100,40], 'do Function');var btn_cancel = w.add('button', [120,10,220,40], 'cancel');  btn_do.onClick = doFunc; btn_cancel.onClick = doCancel;  w.center(); w.show();}())

なので以下のように配列にするか、sheduleTaskの返り値が整数のようなので

1から最新の値の数値までをcancelTaskに繰り返し与えるといいかも

(function (){

//scheduleTaskの返り値の保存用var taskID = [];//実行させる関数var myFunc = function (taskID_number){ app.project.items.addFolder('hoge ' + taskID_number); }//実行ボタンをクリックした時の関数var doFunc = function (){ taskID.push(app.scheduleTask('myFunc(' +taskID.length +')', 500, true)); }//キャンセルした時の関数var doCancel = function (){ for(var i=0;i<taskID.length;i++){ app.cancelTask(taskID[i]); } taskID = []; }var w = new Window('palette', 'hoge' , [100,100, 330,150]);var btn_do = w.add('button' ,[10,10,100,40], 'do Function');var btn_cancel = w.add('button', [120,10,220,40], 'cancel');  btn_do.onClick = doFunc; btn_cancel.onClick = doCancel;  w.center(); w.show();}());