enchantMOON Hackボタン

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”);でページのリンクを実現しているようだ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です