2013年9月7日土曜日

戦国IXAとIXA用ツール開発の変遷 3

 JSActionsを使っていたのは2010年の春頃からのことだったと記憶している。

3.GreaseMonkeyとの出会い

 JSActionsを使って色々なスクリプトを作っていた。IXAの地図上で、敵拠点の城主のプロフィールや合戦報告書を表示するのは出来たのだが、自分の最短の位置にある拠点からの距離を表示するのは地図上から出来なかった。

 Javascriptに対してはかなり理解が深まったのだが、HTMLやスタイルシート(CSS)など、WEBに関する知識に疎かったため、どうすることも出来なく、何とかしようと試行錯誤はしていた。
 FireFoxのアドオンはどうだろうかと試そうとしたり。結局いろいろ大変そうなので諦めたが…。

 そんなときWebでGreaseMonkeyの記述を見て、調べてみると、特定のページに対して、HTMLコードを操作して、特別な事を仕込む事が簡単に出来るらしいという事が分かった。

 試してみて、JSActionsのように手軽にスクリプトが組み込めるし、ボタンを表示させそこからスクリプトの起動するようなことも出来るので、いろいろ応用が利く事が分かった。

 同盟情報から同盟員の一覧を、リンクを辿った情報と一緒にまとめて、Excelに貼り付けられるように加工したりするスクリプトを作ったりした。

 こんな中で「どこ近」が作られた、ある地点に陣を作成しようとしたり、同じ同盟員の拠点に加勢を送ったりするときに、自分のどの拠点が一番近いのかを表示するスクリプトだ。

 最短の距離から部隊を送り出した後で、より近い拠点があったことが分かり残念に思った事が何度もあったので、これを無くしたいという思いから生まれた。

 「どこ近」のスクリプトがやっているのは、ある特定の座標において、自分のプロフィール画面から、自分の拠点の座標を拾い集めたものと、距離を計算して、最も近い拠点を表示することである。実際には、近い順に3箇所、ただし2番目以降は、もっとも近い地点と比べて、そこそこ近いものがある場合だけ表示される。距離10と距離50の拠点がある場合は、ひとつしか表示されない。最短拠点の距離と25%遠いところまでが表示される可能性がある仕様だったと思う。(ソース確認しろよw)

 こんな風にツールを使っていたが、座標を拾ってくる部分などは、HTMLソースをRegEx(正規表現)関数を使って抜き出す自前プログラムで行っていた。この時はまだjQueryは知らなかったのである。

0 件のコメント:

コメントを投稿