« テキスト作成 | トップページ | SVG コードの手直し(または Inkscape 恨み節) »

2012年4月29日 (日)

テキスト作成 -2-

FlatTable のテキスト(コメント)作成機能で未実装だったものを実装し、テキスト・メニューの追加・修正もしました。今回実装したのは、テキストの移動、テキスト枠のリサイズおよび適正化、そして台の回転への対応です。自動折り返し機能は未実装のままです。

テキストの移動は、そのメニュー項目を選択した後に仮想的マウスパッド(exPad)の上でドラッグ(ボタンを押したままでのマウス移動をドラッグと呼ぶことにします)することで実行さるようになっています。しかし、ドラッグという操作は球の移動でも使われます。したがって、ドラッグという操作に対して、その応答を文脈に応じて切り分ける必要が有ります。FlatTable では、その切り分けは操作モードを表す変数 opMode で制御することにしました。JavaScript はオブジェクト指向と言われているようなので、そういう方向で行った方がカッコ良いのかも知れませんが、私はオブジェクト指向が苦手なので、単純に変数での制御にしました。

opMode は5つのビットを使用し、それらのビットには次のような意味を持たせています。

ビットクリック時の動作ドラッグ時の動作
bit4テキストの表示
bit3テキスト枠リサイズ
bit2テキストの移動
bit1経路の生成 /
ゴーストの生成
球の移動
bit0球の移動

これらのビットは上位ほど優先順位が高くなっています。例えば、bit0 と bit2 が立っている時ドラッグすると、テキストの方が優先的に移動します。ビットの on/off はコードのあちこちに散らばっていて、一言では説明できません。どんどんスパゲッティになって来ています。

「球を移動するつもりでドラッグしたらテキストが移動した」というような間違いを起こすことが考えられます。そこで、その間違いを減らすために、テキスト枠のリサイズやテキストの移動に関するビットが立っていると、メニューのその項目が赤文字になってその操作モードであることが分かるようにしました。

配置図例 --------
ここまでの動作およびコードは、本ブログのサイドバー「Link」の「SVG+JavaScript 版 FlatTable の試作品」で確認できます。

« テキスト作成 | トップページ | SVG コードの手直し(または Inkscape 恨み節) »

ビリヤードの配置図ソフト」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: テキスト作成 -2-:

« テキスト作成 | トップページ | SVG コードの手直し(または Inkscape 恨み節) »