タグ

ブックマーク / esmasui.hatenadiary.org (7)

  • enchantMOONのシミュレータのようなものをつくった - _development,

    概要 HTML5でenchantMOONのシミュレータのようなもの( enchantMOON/simulator)をつくりました。 主にMOON.getPaperJSON(), setPaperJSON()を利用するシールのデバッグにおいて有用です。また、そのとおりにMOON.setPaperJSON(), MOON.getPaperJSON()が動けばいいやくらいの感じでしか作っていないので、そのくらいの機能しかありません。 ページのレンダリングには、過去エントリ「enchantMOONのストロークをTwitterに投稿するシールを公開しました」で作ったものを使っていますので、レンダリング結果はenchantMOON体と差異がある場合があります。 動作確認はMac版のChromeでしか行っていないので、それ以外の環境では動作しない可能性があります。 サポートしているMOON.jsの機能

    enchantMOONのシミュレータのようなものをつくった - _development,
  • enchantMOON - MOONBlockまにあっくす - _development,

    概要 MOONBlockの実装を調べてみよう、みたいな話。MOONBlockの使い方等は一切でてきません。 MOONBlockはenchantMOONにバンドルされたビジュアルプログラミング環境です。enchantMOONで作成したシールはコンテキストメニューの「Hack」を選択することでMOONBlockで編集できます。編集できるということは、シールのデスクリプタである manifest.json、メインプログラムである hack.js の読み書きを何らかの方法で実現しているということです。そこで、MOONBlockがどうやってそれらのファイルを読み書きしているのか調べてみました。 MOONBlockの構成 MOONBlockのプログラム体は、/App/MOONBlock/main.js です。main.jsは多く分けて四つの要素で構成されています。 ユーザーインターフェイス ビジュア

    enchantMOON - MOONBlockまにあっくす - _development,
  • enchantMOONでTDDしようぜ - _development,

    概要 enchantMOONでTDDする方法を解説します。 以下の効能があります。 PCで編集したファイルをenchantMOONで即実行できる つまり編集するたびにストレージをマウント・アンマウントしなくていい もちろんZipに固めたりアップロードしたり台帳を開いたりしなくてもいい 但し、最終的にプログラムをシールとして実行・配布したい場合は従来通りマウントして書き込むかZipで固めて体に転送する必要があります。 エントリは「WEBコンソールでenchantMOONをスクリプティングする」の応用編です。enchantMOONとPCとの通信にはSocket.IOを使います。 QUnit エントリでは、テストフレームワークとしてQUnitを使います。 Jasmineじゃないの?と思われるかもしれませんが、最初は簡素なフレームワークを使ったほうが実現しやすかろうというのがQUnitを使っ

    enchantMOONでTDDしようぜ - _development,
  • enchantMOONのlocalStorageへの書き込みはMOON.finish()を呼ばないとフラッシュされないらしい - _development,

    概要 localStorageに書き込んだらMOON.finish()などで明示的に終了しないとフラッシュされないというお話。 localStorageって? localStorageはページ単位のデータを保持するためのオブジェクトです。 キーを指定して代入すると書き込み、書き込んだ値は同じキーを指定して取り出せます。 localStorage["hoge"] = "piyo"; var piyo = localStorage["hoge"]; これはenchantMOON独自のオブジェクトではなく、HTML5のStorageに該当するものです。 localStorageへの書き込みがフラッシュされる場合 localStorageに書き込んだ後、MOON.finish()を呼び出すことで、フラッシュされます。 以下のシールをタップすると、タップするたびに0, 1, 2... と表示される数

    enchantMOONのlocalStorageへの書き込みはMOON.finish()を呼ばないとフラッシュされないらしい - _development,
  • enchantMOONのストロークをTwitterに投稿するシールを公開しました - _development,

    enchantMOONのストロークをTwitterに投稿するシールを公開しました。 シールのインストール方法は以下のオフィシャルサイトを参照してください。 MOONPhaseがバージョン2.4.0にアップデートされました | enchantMOON News- enchantMOON ; The Hypertext Authoring Tablet ダウンロードURL http://goo.gl/M844qo 内容 シールを貼り付けているページのストロークを enchantmoonstrokesにポストしたあと、ストロークのURLと任意入力のテキストをTwitterに投稿します。 使い方 シールをインストールする Tweetしたいページから台帳を開く インストールしたシールを台帳からノートに貼る 貼ったシールをタップする ダイアログが開くので、Tweetしたい文言を入力する 後の手順のブラ

    enchantMOONのストロークをTwitterに投稿するシールを公開しました - _development,
  • WEBコンソールでenchantMOONをスクリプティングする - _development,

    概要 ブラウザのWEBコンソールでenchantMOONをスクリプティングする方法を説明します。この方法を使えば、WEBコンソールからJavaScriptをタイプしてenchantMOONで実行された結果をダンプできるので、効率的にデバッグが行えるでしょう。 WEBコンソールのスクリーンショット このスクリーンショットは以下のJavaScriptを順に実行したものです。 console.log("Hello, enchantMOON.") importJS(["lib/MOON.js"], function(){}) MOON.getPaperJSON(MOON.getCurrentPage().backing) スクリーンキャストを見ていただければ、WEBコンソールでタイプした内容がリアルタイム(若干のディレイがありますが...)に実行されている様子がわかると思います。 WEBコンソール

    WEBコンソールでenchantMOONをスクリプティングする - _development,
  • enchantMOONでTwitterに投稿する - _development,

    enchantMOONからTwitterに投稿するStickerの作り方。 注意: 固定の文字列を投稿するだけの機能しかありません。 OAuth認証を処理するために以下のライブラリを利用しています。 oauth - API needz authorized? - Google Project Hosting sha1.js oauth.js 手順 1. Stickerのlibディレクトリにsha1.js, oauth.jsをコピーします。 2. importJS()で、sha1.js, oauth.jsをインポートします。 3. stickertapイベントハンドラに以下のようなコードを実装します。'Tweet from enchantMOON!'という固定の文字列を投稿するようになっています。なお、このコードはJavaScript で OAuth 認証を行う方法 - vivid memo

    enchantMOONでTwitterに投稿する - _development,
  • 1