2015年4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 過去シールの ver 2.8.0 対応 update | トップページ | 手書き版コピペシールのソースコード »

2013年12月 5日 (木)

「双方向リンク」シールを update しました。

以前「双方向リンク」シールを作りましたが、これも update しました。単に accessjson.js の修正のみではありません。

Download : 「双方向リンク登録」シール / 「双方向リンク検索」シール

実は Issue Tracker に回答が返っていました

このような tweet もありましたが、私も暫く前まで気付いていませんでした。

以前 Issue Tracker : issue #138 に 「シールを剥がしにくくて困る」 と投稿したのですが、暫く前に Issue Tracker を見直してみると、#138 が一覧から消えていました。Search 欄を "Open issues" から "All issues" に変更して再検索してみるとリストに表示され、中を見ると返事があったのです。G-mail は使わない人なので、改めて G-mail に login してみると、メールもちゃんとありました。曰く、

以下のようなコードで同様な事が実現可能かと存じます。

importJS(["lib/MOON.js"], function() { 
    var sticker = Sticker.create(); 
    sticker.ontap = function() { 
        localStorage["tap"] = true;
        MOON.peel();
        MOON.finish(); 
    }; 
    sticker.onattach = function() { 
        MOON.finish(); 
    }; 
    sticker.ondetach = function() { 
        if (localStorage["tap"] == true) {
            localStorage["tap"] = false;
            MOON.openPage("8ET7iS381356966172426"); // PageID
        }
        MOON.finish(); 
    }; 
    sticker.register(); 
});


概略は次の通りです。

① タップの際(或いは貼付けの際)にタップ操作である事のフラグを保存しつつシールを剥がす処理を実行する
② ①により ondetach の処理に移行するので、その中でページの移動処理を行う。この際、ユーザが剥がしたのか
  コードにより剥がされたのかで処理を分けたい場合、①にて保存したフラグにより確認する。

気付いたのは暫く前だったのですが、コピペシールの開発に取り掛かっていたので、途中で手を出す余裕がなく、今回の修正時に動作確認してみました。「双方向リンク検索」シールの hack.js を以下のように修正すると、無事にページ移動とシール剥がしを両立するシールが作成できました。似たようなものが必要になった時に使えそうなテクニックです。

hack.js : 修正前

importJS(["lib/MOON.js", "main.js"], function() {
    var sticker = Sticker.create();

    function shrinkStickerClip() {
        var myID = getStickerID();
        var paperJSON = MOON.getPaperJSON( myID );
        paperJSON.clip.data = [0.0,0.0,0.05,104.0,0.0,0.05,
          104.0,85.0,0.05,0.0,85.0,0.05,0.0,0.0,0.05
        ];
        paperJSON.width = 105;
        paperJSON.height = 86;
        paperJSON.image = "peel.png";
        MOON.setPaperJSON( myID, paperJSON );
    }

    sticker.ontap = function(event) {
//        MOON.finish();

        MOON.peel();
    };

    sticker.onattach = function(event) {
        var query = queryForLinkedSearch();
        shrinkStickerClip();
        MOON.searchStorage( query );
//        MOON.peel();

        MOON.finish();
    };

    sticker.ondetach = function(event) {
        MOON.finish();
    };

    sticker.register();
});

hackjs. : 修正後

importJS(["lib/MOON.js", "lib/accessjson.js", "main.js"], function() {

    var AUTO_PEEL_FLAG = 'BILINK_PEEL';

    var sticker = Sticker.create();

    sticker.ontap = function(event) {
        MOON.finish();
    };

    sticker.onattach = function(event) {
        StorageUtil.set( AUTO_PEEL_FLAG, true );
        MOON.peel();
        MOON.finish();
    };

    sticker.ondetach = function(event) {
        if ( StorageUtil.get( AUTO_PEEL_FLAG, false ) ) {
            StorageUtil.set( AUTO_PEEL_FLAG, null );
            MOON.searchStorage( queryForLinkedSearch() );
        }
        MOON.finish();
    };

    sticker.register();
});

旧 「双方向リンク検索」シール(1), 「双方向リンク検索」シール(2) は廃盤にします。

前に作った時には「剥がして移動する」ことができなかったので、残ったシールの剥がし方違いで 2 パターン作ったのですが、無事目的の動作ができるようになったので、(1) (2) は廃盤として、「双方向リンク検索」シールに一本化します。

まだ、ちょっと納得いかない動作をする時もあるのですが、MOONPhase ver 2.8.0 になり、ページ移動も速くなったので、もうちょっとすれば、そこそこ実用的なシールになりそうです。

« 過去シールの ver 2.8.0 対応 update | トップページ | 手書き版コピペシールのソースコード »

enchantMOON」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1527616/54160419

この記事へのトラックバック一覧です: 「双方向リンク」シールを update しました。:

« 過去シールの ver 2.8.0 対応 update | トップページ | 手書き版コピペシールのソースコード »