▼enchantMOONメモ▼
enchantMOON


enchantMOON
ユビキタスエンターテイメントが開発したペンによる手書き入力に特化したタブレット。手書きノートと同等の操作性に加え、高度な情報処理を手軽に実現することを目的とした新設計のコンピュータで、これまでコンピュータに置き換えられていなかった紙によるペーパーワークを電子化することを目指している。シール(アプリ)を作るためのプログラミング言語は、「MOONBlock」と「JavaScript 」。




情報源

開発情報
公式 開発情報ブログ
enchantMOON Developers enchantMOON Bookmarks
MOON.js APIリファレンス _development,
Canvas Context 2D Implementation Status Overview My Codex Leicester
enchantMOONヘルプ paraches lifestyle lab.
enchantMOON公式サイト -
enchantMOON Crew&Developers Conference#1資料 -


チュートリアル

チュートリアル 



ページの更新

ページの情報の取得 
ページ情報を取得して表示するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var page = MOON.getCurrentPage();
var properties="";
for (var prop in page){
properties+=prop+":"+page[prop]+"\n";
}

MOON.alert("CurrentPage\n"+ properties, function() {
MOON.finish();
});
};
sticker.register();
});

Download


ページのストロークの情報の取得 
ページのストロークの情報を取得して表示するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var page = MOON.getCurrentPage();
var paper = MOON.getPaperJSON(page.backing);
var properties="";
for (var prop in paper){
properties+=prop+":"+paper[prop]+"\n";
}

MOON.alert("PaperJSON\n"+ properties, function() {
MOON.finish();
});
};
sticker.register();
});

Download


ページのストロークのクリア 
ページのストロークをクリアするプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var page = MOON.getCurrentPage();
var paper = MOON.getPaperJSON(page.backing);
paper.strokes=[];
MOON.setPaperJSON(page.backing,paper);

MOON.alert("PageClear", function() {
MOON.finish();
});
};
sticker.register();
});

Download


シールの終了

シールの終了 
アラートのOK押した時にシールを終了するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.alert("FinishEx", function() {
MOON.finish();
});
};
sticker.register();
});

Download


シールを終了して剥がす

アラートのOK押した時にシールを終了して剥がすプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.alert("PeelEx", function() {
MOON.peel();
});
};
sticker.register();
});

Download


シールを終了してWEBページを開く

アラートのOK押した時にシールを終了してWEBページを開くプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.alert("OpenUrlEx", function() {
MOON.openUrl("http://enchantmoon.com/");
MOON.finish();
});
};
sticker.register();
});

Download


シールを終了してページを開く

アラートのOK押した時にシールを終了して剥がすプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.openNotebook(function(pageId) {
MOON.alert("OpenPageEx>"+pageId, function() {
MOON.openPage(pageId);
MOON.finish();
});
});
};
sticker.register();
});

Download


ページ一覧のオープン

ページ一覧のオープン
ページ一覧をオープンして、選択したページIDを取得するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.openNotebook(function(pageId) {
MOON.alert("OpenNotebookEx>"+pageId, function() {
MOON.finish();
});
});
};
sticker.register();
});

Download


アラートとプロンプト

アラート 
アラートを表示するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.alert("Hello MOON", function() {
MOON.finish();
});
};
sticker.register();
});

Download


ペンプロンプト

ペンプロンプトを表示するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.penPrompt("名前を入力してください", "山田太郎",
{fieldLength:8, fieldSize:60, "inputType":"any"}, function(str) {
MOON.alert(str, function() {
MOON.finish();
});
});
};
sticker.register();
});

Download


キーボードプロンプト
キーボードプロンプトを表示するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
MOON.keyboardPrompt("名前を入力してください", "山田太郎",
{fieldLength:12, fieldSize:40}, function(str) {
MOON.alert(str, function() {
MOON.finish();
});
});
};
sticker.register();
});

Download


設定

ペン色
ペン色を切り替えるプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var color0 = MOON.getPenColor();
var color1 = (color0 == MOON.rgba2int(255, 0, 0,255)) ?
MOON.rgba2int(0, 0, 255,255) : MOON.rgba2int(255, 0, 0,255)
MOON.setPenColor(color1);

var rgba0 = MOON.int2rgba(color0);
var rgba1 = MOON.int2rgba(color1);
MOON.alert("ペン色変更 "+
"("+rgba0[0]+","+rgba0[1]+","+rgba0[2]+")→"+
"("+rgba1[0]+","+rgba1[1]+","+rgba1[2]+")", function() {
MOON.finish();
});
};
sticker.register();
});

Download


ペン幅
ペン幅を切り替えるプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var width0 = MOON.getPenWidth();
var width1 = (width0 == 2.0) ? 6.0 : 2.0;
MOON.setPenWidth(width1);

MOON.alert("ペン幅変更 "+width0+"→"+width1, function() {
MOON.finish();
});
};
sticker.register();
});

Download


デフォルトペン色
デフォルトペン色を切り替えるプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var color0 = MOON.getDefaultPenColorBW();
var color1 = (color0 == MOON.rgba2int(255, 255, 255, 255)) ?
MOON.rgba2int(255, 0, 0, 255) : MOON.rgba2int(255, 255, 255, 255)
var rgba0 = MOON.int2rgba(color0);
var rgba1 = MOON.int2rgba(color1);
MOON.setDefaultPenColorBW(color1);

MOON.alert("デフォルトペン色変更 \n"+
"("+rgba0[0]+","+rgba0[1]+","+rgba0[2]+","+rgba0[3]+")→"+
"("+rgba1[0]+","+rgba1[1]+","+rgba1[2]+","+rgba1[3]+")", function() {
MOON.finish();
});
};
sticker.register();
});

Download


デフォルトペン幅
デフォルトペン幅を切り替えるプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var width0 = MOON.getDefaultPenWidth();
var width1 = (width0 == 2) ? 6 : 2;
MOON.setDefaultPenWidth(width1);

MOON.alert("デフォルトペン幅変更 "+width0+"→"+width1, function() {
MOON.finish();
});
};
sticker.register();
});

Download


デフォルト背景色
デフォルト背景色を切り替えるプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var color0 = MOON.getDefaultBackingColor();
var color1 = (color0 == MOON.rgba2int(0, 0, 0, 255)) ?
MOON.rgba2int(255, 0, 0, 255) : MOON.rgba2int(0, 0, 0, 255)
var rgba0 = MOON.int2rgba(color0);
var rgba1 = MOON.int2rgba(color1);
MOON.setDefaultBackingColor(color1);

MOON.alert("デフォルト背景色変更 \n"+
"("+rgba0[0]+","+rgba0[1]+","+rgba0[2]+","+rgba0[3]+")→"+
"("+rgba1[0]+","+rgba1[1]+","+rgba1[2]+","+rgba1[3]+")", function() {
MOON.finish();
});
};
sticker.register();
});

Download


環境設定
環境設定を切り替えるプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var trigger0 = MOON.getEnvironment("stickerPageTrigger");
var trigger1 = (trigger0 == "longpress") ? "doubletap" : "longpress";
MOON.setEnvironment("stickerPageTrigger", trigger1);

var timeout0 = MOON.getEnvironment("screenTimeout");
var timeout1 = (timeout0 == -1) ? 120 : -1;
MOON.setEnvironment("screenTimeout", timeout1);

MOON.alert("environment>"+ trigger0 + "→" + trigger1+"\n"+
timeout0 + "→" + timeout1, function() {
MOON.finish();
});
};
sticker.register();
});

Download


ローカルストレージ

数値の保存
ローカルストレージへ数値を保存するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var num = localStorage["num"];
if (num == null) num = 0;
localStorage["num"] = num + 1;

MOON.alert("カウント>"+num, function() {
MOON.finish();
});
};
sticker.register();
});

Download


文字列の保存
ローカルストレージへ文字列を保存するプログラムは次の通り。
importJS(["lib/MOON.js"], function() {  
var sticker = Sticker.create();
sticker.ontap = function() {
var name = localStorage["name"];
if (name == null) name = "???";

MOON.keyboardPrompt("名前を入力してください", name,
{fieldLength:12, fieldSize:40}, function(str) {
if (str != null) localStorage["name"] = str;
MOON.finish();
});
};
sticker.register();
});

Download



−戻る−