MOONPhase version 2.8.0
前回はLinkボタンを使って他のページにリンクするシールをつくるところまでやってみた。
今回は次のステップとして、Hackボタンを押してみよう。
前回つくったリンクシールを指で丸で囲うと4番目のボタンとしてHackボタンが追加されていることが確認できる。さっそく押してみると、MOONBlockが起動する。ここでは何も編集しないで”Done”を押してMOONBlockを終了する。この状態ではリンクシールの動作はそのままである。
では、PCにつないでフォルダの中身を確認してみよう。
Data
|-MyNotebook1
|-20140212215125964
|-20140212215125961
| |-info.json
|-20140215183327921
| |-images ----------1.画像用フォルダ
| | |-
| |-lib ----------2.ライブラリ用フォルダ
| | |-color.enchant.js
| | |-enchant.js
| | |-MOON.js
| | |-moon.puppet.enchant.js
| | |-puppet.enchant.js
| | |-stylus.enchant.js
| | |-surface.enchant.js
| | |-ui.enchant.js
| |-sound -----------3.サウンド用フォルダ
| | |-se
| | | |-
| |-hack.js -----------5.シールの動作
| |-info.json
| |-manifest.json -----------4.シールの情報
|-info.json
|-storage.json
三個のフォルダが追加されている。
1.画像用フォルダにはMOONBlockで使用する画像ファイルが入っている。
2.ライブラリ用フォルダにはenchantMOONの機能を使うためのライブラリのようだ。
3.サウンド用フォルダにはMOONBlockで使用するサウンドファイルが入っている。
次に4.シールの情報が書かれたmanifest.jsonが更新されているので中身を確認してみよう。
Hack前
{
"editor":{
"name":"Columbia",
"version":"1"
},
"linked_pages":["20140211100645567"],
"access_urls":[],
"script":"hack.js"
}
Hack後
{
"version":"1",
"editor":{
"name":"MOONBlock",
"version":"1"
},
"linked_pages":["20140211100645567"],
"access_urls":[],
"script":"hack.js",
"plugins":[],
"blocks":[{
"x":200,
"y":280,
"constructorName":"StickerBlock",
"variables":{
"name":"シール",
"fold":"-",
"ontap":{
"x":0,
"y":0,
"constructorName":"LinkBlock",
"variables":{
"type":"Page",
"link":"20140211100645567"
},
"next":null
},
"onattach":{
"x":0,
"y":0,
"constructorName":"EndBlock",
"variables":{},
"next":null
},
"ondetach":{
"x":0,
"y":0,
"constructorName":"EndBlock",
"variables":{},
"next":null
}
}
}],
"block_images":[]
}
MOONBlockの情報がいろいろ追加されている。
次に5.シールの動作がかかれたhack.jsをみてみよう。
Hack前
location.replace("page://20140211100645567");
Hack後
importJS(["lib/MOON.js", "lib/enchant.js", "lib/ui.enchant.js", "lib/color.enchant.js", "lib/surface.enchant.js", "lib/stylus.enchant.js", "lib/puppet.enchant.js", "lib/moon.puppet.enchant.js"], function() {
enchant();
enchant.puppet.prepareTheatre({
assets: []
});
StickerPuppet.create("シール", {
behavior: [{
stickertap: function(event) {
MOON.openPage("20140211100645567");
enchant.puppet.stopTheatre();
},
stickerattach: function(event) {
enchant.puppet.stopTheatre();
},
stickerdetach: function(event) {
enchant.puppet.stopTheatre();
}
}]
});
});
MOONBlockを使うためのコードがいろいろ追加されている。
MOON.openPage(“20140211100645567”);でページのリンクを実現しているようだ。
