JavaScript API
概要
JavaScript APIには、JSON APIをラップしたAPIの他、アプリケーションを管理したり、描画やタッチイベントを管理するAPIが含まれます。JavaScript APIを使用するにはHTMLからhttp://www.illustbook.net/api_jsを読み込みます。
 
 
以降、illustbook.クラス名.メソッド名、としてJavaScriptのAPIを呼び出すことができます。
 
 
クラス一覧
JavaScript APIには次のクラスがあります。
| クラス | 役割 |
| app | イラストブックにアプリ&プラグインを登録する |
| canvas | 描画を行う |
| user | ユーザ情報を取得する |
| feed | フィード情報を取得する |
| bookmark | ブックマーク情報を取得する |
| perpetuation | データを保存する |
| request | JSON APIにアクセスする |
| utility | 各種のユーティリティ関数 |
 
 
appクラス
appクラスは最も基本的なクラスです。アプリ&プラグインは、必ずillustbook.app.regist関数を使用してイラストブックに登録する必要があります。また、ゲームを作成する場合は、illustbook.app.addLoopCallbackを使用してゲームループを登録する必要があります。
 
function MyApp(){
}
MyApp.prototype.init()=function{
illustbook.app.addLoopCallback(this,1000/15)
}
MyApp.prototype.loop=function(){
}
illustbook.app.regist(new MyApp())
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| regist | アプリ&プラグインを登録する | アプリ&プラグインクラス | なし | イラストブックにアプリ&プラグインを登録します。 登録直後に登録したクラスのinit関数が呼ばれます。 |
| addLoopCallback | メインループを登録する | アプリ&プラグインクラス、ループを呼び出すミリ秒間隔 | なし | 設定した間隔でアプリ&プラグインクラスのloop関数が呼ばれます。 |
| getAppKey | アプリケーションのキーを取得する | なし | String | PerpetuationAPIで使用するアプリケーションのキーを取得します |
| getDiv | アプリケーションの描画先のDIVを取得する | アプリ&プラグインクラス | div element | アプリケーションの描画先のDIVを取得して.innnerHTMLなどでアクセスすることができるようにします |
 
 
canvasクラス
canvasクラスでは、HTML5のCanvasオブジェクトを使用した描画を行うことができます。canvasクラスを仕様するには、アプリのinit関数でnew illustbook.canvas()を呼び出してインスタンスを作成した後、loop関数で描画を行います。描画は、drawBegin()関数で開始し、drawEnd()関数で終了します。
 
function MyApp(){
this._canvas;
}
MyApp.prototype.init()=function{
this._canvas=new illustbook.canvas(this,480,480);
illustbook.app.addLoopCallback(this)
}
MyApp.prototype.loop=function(){
this._canvas.drawBegin();
this._canvas.drawText("Hello world",0,0,12,0x000000);
this._canvas.drawEnd();
}
illustbook.app.regist(new MyApp())
 
また、loadImage関数で画像を読み込み、drawImage関数で描画することができます。
MyApp.prototype.init()=function{
this._canvas=new illustbook.canvas(this,480,480);
this._image=this._canvas.loadImage("test.jpg")
illustbook.app.addLoopCallback(this,1000/15)
}
MyApp.prototype.loop=function(){
this._canvas.drawBegin();
this._canvas.drawImage(this._image,0,0);
this._canvas.drawEnd();
}
 
init関数でaddTouchCallbackを呼ぶことで、マウスイベントのコールバックを登録することができます。
MyApp.prototype.init()=function{
this._canvas=new illustbook.canvas(this,480,480);
this._canvas.addTouchCallback(this)
illustbook.app.addLoopCallback(this,1000/15)
}
MyApp.prototype.onTouchStart=function(x,y){
alert(""+x+"/"+y);
}
MyApp.prototype.onTouchMove=function(x,y){
}
MyApp.prototype.onTouchEnd=function(x,y){
}
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| new illustbook.canvas | 描画領域の作成 | アプリ&プラグインクラス,横幅,高さ | 作成したcanvasクラス | 描画領域を作成します。横幅と高さは480を推奨します。(スマートフォン対応) |
| addTouchCallback | タッチイベントの登録 | アプリ&プラグインクラス | なし | アプリ&プラグインクラスのonTouchStart/onTouchMove/onTouchEndが呼ばれるようになります。 |
| drawBegin | 描画開始 | なし | なし | フレームの描画を開始します。 |
| drawEnd | 描画終了 | なし | なし | フレームの描画を終了します。 |
| fillRect | 矩形描画 | x,y,width,height,color | なし | (x,y)から(width,height)のサイズの矩形を色colorで描画します。色は0xffffffのようにカラーコードで指定します。 |
| loadImage | 画像読込 | url | Imageオブジェクト | なし |
| drawImage | 画像描画 | Imageオブジェクト,x,y | なし | |
| drawImageRect | 区間画像描画 | Imageオブジェクト,sx,sy,sw,sh,dx,dy,dw,dh | なし | (sx,sy)から(sw,sh)の矩形を(dx,dy)に(dw,dh)のサイズで描画します。 |
| drawText | 文字列描画 | text,x,y,font_size,color | なし |
 
 
userクラス
userクラスでは、管理しているボードやフォロワーなど、ユーザに関連した情報を取得します。また、ログインしていたり、アプリを所有していたりするユーザのIDを取得することができます。
 
次の例では、offset番目からlimit個のデータを取得して、結果をcallback関数に通知しています。callback関数に通知されるデータについては、JSON APIを参照して下さい。
 
var offset=0;
var limit=100;
illustbook.user.getFollow(user_id,0,limit,illustbook.user.ORDER_NONE,callback);
illustbook.user.getFollower(user_id,0,limit,illustbook.user.ORDER_NONE,callback);
illustbook.user.getBbsList(user_id,0,limit,illustbook.user.ORDER_NONE,callback);
illustbook.user.getThreadList(user_id,0,limit,illustbook.user.ORDER_NONE,callback);
illustbook.user.getTimeline(user_id,0,limit,illustbook.user.ORDER_NONE,callback);
illustbook.user.getHomeTimeline(user_id,0,limit,illustbook.user.ORDER_NONE,callback);
function callback(oj){
alert(oj.status);
}
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| getCurrentUser | ログインしているユーザを取得 | なし | ユーザID(String) | |
| getOwner | アプリを所有しているユーザを取得 | なし | ユーザID(String) | 他人のボードを見ている場合はボードの所有者が返ります。 |
| getBbsList | レンタルしているボードの一覧を取得 | user_id,offset,limit,order,callback | Bbsオブジェクトのリスト | |
| getThreadList | 投稿したイラストの一覧を取得 | user_id,offset,limit,order,callback | Threadオブジェクトのリスト | |
| getFollow | フォローしているユーザを取得 | user_id,offset,limit,order,callback | Userオブジェクトのリスト | |
| getFollower | フォローされているユーザを取得 | user_id,offset,limit,order,callback | Userオブジェクトのリスト | |
| getTimeline | ユーザのフィードの一覧を取得 | user_id,offset,limit,order,callback | Feedオブジェクトのリスト | |
| getHomeTimeline | ユーザとユーザがフォローしているユーザのフィードの一覧を取得 | user_id,offset,limit,order,callback | Feedオブジェクトのリスト |
 
 
feedクラス
feedクラスでは、イラストブックの最新情報を取得することができます。現在は、ボードに投稿されたイラストの一覧のみ取得が可能です。
 
次の例では、ボード(sample)に最近投稿されたイラストの一覧を、offset番目からlimit個、取得しています。bbs_idにnullを設定すると、全てのボードから取得します。callback関数に通知されるデータについては、JSON APIを参照して下さい。
 
var bbs_id="sample";
var offset=0;
var limit=9;
var order="new";
illustbook.feed.getThreadList(bbs_id,offset,limit,order,callback);
function callback(oj){
alert(oj.status);
}
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| getThreadList | ボードのスレッドの一覧を取得 | bbs_id,offset,limit,order,callback | Threadオブジェクトのリスト | orderにはORDER_NEW/ORDER_MOPER/ORDER_APPLAUSEを指定します。bbs_idを省略した場合は全てのボードから取得します。 |
 
 
bookmarkクラス
bookmarkクラスでは、ユーザIDをキーに、ブックマークしているスレッドやボードの情報を取得することができます。
 
次の例では、ユーザ(user_id)のブックマークしているスレッドとボードの一覧を、offset番目からlimit個、取得しています。callback関数に通知されるデータについては、JSON APIを参照して下さい。
 
var offset=0;
var limit=10;
illustbook.bookmark.getThreadList(user_id,offset,limit,illustbook.bookmark.ORDER_NONE,callback);
illustbook.bookmark.getBbsList(user_id,offset,limit,illustbook.bookmark.ORDER_NONE,callback);
function callback(oj){
alert(oj.status);
}
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| getThreadList | ブックマークしているスレッドの一覧を取得 | user_id,offset,limit,order,callback | Threadオブジェクトのリスト | あるユーザのブックマークしているスレッドの一覧を取得します。orderにはORDER_NONEを指定します。 |
| getBbsList | ブックマークしているボードの一覧を取得 | user_id,offset,limit,order,callback | Bbsオブジェクトのリスト | あるユーザのブックマークしているボードの一覧を取得します。orderにはORDER_NONEを指定します。 |
| getAppList | ブックマークしているアプリの一覧を取得 | user_id,offset,limit,order,callback | Appオブジェクトのリスト | あるユーザのブックマークしているアプリの一覧を取得します。orderにはORDER_NONEを指定します。 |
 
 
perpetuationクラス
perpetuationクラスでは、イラストブックのKeyValueStoreにデータを保存することができます。データは整数値と文字列のペアで保存します。また、data_keyをアプリ設定に登録することで、自動的にランキングを作成することができます。ランキングは整数値でソートされ、文字列を表示します。
 
次の例では、data_keyに対応するハイスコアの取得と、ハイスコア(highscore_int/highscore_text)の保存を行なっています。callback関数に通知されるデータについては、JSON APIを参照して下さい。
 
var data_key="highscore";
var highscore_int=0;
var highscore_text="SCORE0";
illustbook.perpetuation.getData(data_key,get_data_callback);
illustbook.perpetuation.putData(data_key,highscore_int,highscore_text,put_data_callback);
function get_data_callback(oj){
alert(oj.status);
}
function put_data_callback(oj){
alert(oj.status);
}
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| getData | データを取得 | data_key,callback | PerpetuationDataオブジェクト | 現在プレイしているユーザのdata_keyに対応するデータを取得します。 |
| putData | ブックマークしているボードの一覧を取得 | data_key,int_data,text_data,callback | 成功通知オブジェクト | 現在プレイしているユーザのdata_keyにデータを保存します。 |
 
 
requestクラス
requestクラスでは、基本的なget/postメソッド、およびJSONPアクセスメソッドを提供します。
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| get | GETリクエストの発行 | url,callback | JSONをパースした結果のオブジェクト | 同じドメインの場合は通常のgetで、それ以外の場合はJSONPで結果を取得します。返値は共通です。非同期で処理されます。 |
| post | POSTリクエストの発行 | url,obj,callback | String | objは送信データハッシュでマルチパートデータで送信されます。同期で処理されます。 |
| post_async | POSTリクエストの発行 | url,obj,callback | String | objは送信データハッシュでマルチパートデータで送信されます。非同期で処理されます。 |
 
 
utilityクラス
utilityクラスでは、引数の取得など、ちょっと便利に使える関数を提供します。
 
| メソッド | 概要 | 引数 | 返値 | 解説 |
| getUrlArg | URLの引数を取得 | なし | オブジェクト | 引数のハッシュが返ります。arg[key]でアクセス可能です。 |