Neo Inspiration

Feed Rss

LZTDで今実装してるTODOのドラッグ機能ですが、
こんなかんじで実装してます。

public function mouseDown(e:MouseEvent):void {
    todo.startDrag(false,new Rectangle(this.x,this.y,0,this.height)); //ドラッグ処理開始

}
public function mouseUp(e:MouseEvent):void {
    todo.stopDrag(); //ドラッグ処理終了
    //ドラッグ対象の中点が整列対象の一番上より下にきたら、ドラッグ対象はそれより下とみなす
    todo.y = todo.y - todo.height / 2;
    lineup(); //整列処理

}

開始処理はspriteにある startDrag() メソッドでOK。
ただ、そのままだと、自由自在に動かせてしまうので、
今回みたいな縦一列の画面の場合は、3つめの引数(width)を0にして
横には動かせないようにしてあります。
これはクリックしたところから、どれだけの幅で動かせるか、みたいな意味ぽいので、
this.widthとかにすると、
クリックしたところからwidth分横に動かせる=クリック位置によっては画面外にもってける
って感じになってしまうので。

横だけに動かしたいなら this.heightを0にして、横幅を指定すればOK。

あとなんか終了処理がややこしいですが、

1
2
3
4
5

ってあったとして、1をドラッグしたときに、
1の高さの中央点が、2の一番上よりも下にきたら

2
1
3
4
5

になるようにする処理を書いてます。
これ書かないと、1の一番上が、2の一番上よりも下に行かないと
上のように並ばないので。

内部の処理をちょっと変えて、あと常に最前面に表示機能をつけました。
そのまま上書きインストールすれば、データロスなく使えます。

http://refeed.in/lztd

ちなみに最前面に表示機能は
チェックボックスにチェックを入れた時

this.alwaysInFront = true;

こうなるように書いただけです。

共起語検索ツール
http://refeed.in/collocation/

今更感もありますが、SEO業界で割と最近ネタになっている共起語をピックアップするツールを作ってみました。
メインのワードを入れると、Googleで検索し、その結果のTOP10を引っ張ってきて
本文と思われるものなどポイントが高そうな文を計算して、
そこから引っこ抜くかんじです。

たとえばseoでやると

SEO	エンジン	サイト	上位	ページ	リンク	Google	Yahoo	サーチ	登録	キーワード	最適化	場合	情報	ユーザー	Web	ディレクトリ	猿	ビジネス

猿・・・?

まあおいておいて。

少なくともGoogle先生のTOP10なので、
Googleが高い評価をしているコンテンツに入っている共起語なのであれば
それなりに意味があるのかなと。

共起語検索ツール
http://refeed.in/collocation/

LZTDを作る際に必要になったので
(というか一番のヤマだった)
いくつか問題残ってますが、自分はこの方法でやりました。

1:適当にサーバを用意する(自分はVirtualBoxでやりました)

2:https://github.com/asogor/thrift-as3
  ここからソースを落としてきてコンパイル

3:EvernoteのApiをダウンロードして、thiftのソースを thriftコマンドでgenerateする
自分のバージョンだと
evernote-api-1.16\src\thrift
に5個の.thriftファイルがあったので、それを全部
thrift -gen as3 **.thrift みたいにする。

このうちType.thriftとかはエラーで落ちるので、
(原因は64ビットを割り当てる型がAS3にないためらしい)
それを検索して全部32ビットに置き換える
⇒割とめんどくさい&後で色々修正しないといけない。

4:3で出来たソースと、thrift-as3の /lib/as3/src/org/apache/thrift にある asファイルの塊を
まとめてFLEXにインポートして使用する

ただこのままだとi64で読み込むところは全部落ちるので、色々と修正しないといけない。
i64は evernoteでは timestamp型がほとんどなので、(たとえばNote の created,updatedなど)
うまく修正しないと全部空っぽになったりするので注意。
(一応自分は http://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/crypto/rsa/BigInteger.as?r=3
 ここのらBiginteger型を参考にして、64ビット分操作するような感じで動かしました)

EvernoteのチェックボックスでのTodo管理がしっくりこなかったので、
Airでインターフェースを作ってみました。
まだβ版ってことですが、とりあえずリリースです。

http://refeed.in/lztd

ダウンロードページに書いてありますが、以下概要など

概要

○基本的にはただのTodo管理ツールです
○データの保存先がEvernoteになっています。
○Evernoteのアカウントが必須です。
○Adobe Airがインストールされている必要があります。
○無料です

機能

○todoをEvernoteに保存
○タイトル、1行コメント、その他データをtodo形式で保存
○todoの削除(終了フラグをつけるだけでデータ削除ではないです)
○重要度の設定
○重要度でソート(昇順/降順)
○日付でソート(昇順/降順)
○ダブルクリック一時的に一番上にtodoをもってくる
○右クリックでタイトルをクリップボードへ
○タイトルと1行コメント以外のデータの個別閲覧
○やりづらいですが、一応右と下のバーをドラッグすれば大きさも変更可能

その他個人的メモなど

Adobe Air + FlexでThriftにアクセスする際、
as3にはない、i64型がうまくおさまってなくて、
一応Bigintを強引に扱う形で補完したけど、
送信がうまくいっていない

データの編集機能がまだない

インターフェースがかっこわるいorz

フォントをメイリオで指定しているので、入ってないとしょぼいフォントになる

なお機能追加要望にはお答えできませんが、
バグなどは以下コメント欄に頂ければ修正できる範囲でします。