続・Flexでターミナルエミュレータ

予想外に反響をいただいた前回ですが、なんと空前のTTYブームが来ていたとは!

そんなこんなでソースコードも公開しました。CodeReposのlang/actoinscript/FxTermにあります。

二日目の成果はこんな感じです↓


背景色が出るようになりました!カーソルが見えるようになりました!

前回は色付きのテキストを表示するためにTextクラスのhtmlTextを利用していたのですが、これだとやたら泥臭い(色が変わるたびに<font color="#FF0000">... & いちいちタグをエスケープしないといけない)し、その上背景色を設定できなかったので、SpriteクラスにTextFieldクラスで文字列を描画していくようにしてみました。ちょっとだけスマートになっています。


今のところの問題点は…

  • 日本語は出るけどちょっと化ける
  • 日本語を入力できない
  • 画面の左側に変な色が出ている
  • 使っているとだんだん重くなってくる
  • screen + vimでウィンドウ分割するとおかしくなる
  • 書き変わったところだけ再描画するハズが動かないので毎回全部描画し直している
  • 矢印キーが使えない

うむむ。
日本語がちょっと化けるのとscreen + vimがおかしくなるのは、おそらくエスケープシーケンス周りのバグ。
やっかいなのは「使っているとだんだん重くなってくる」問題で、原因がまったく不明。1分と立たないうちに目に見えて遅くなってきます。うーむ。
キーイベントを拾ってくるあたりも要改善。


まだまだ「ちょっと作ってみた」感あふれるコードになってますが、↓こんな感じで使えたらカッコイイなーなんて思ってます。

<mx:Application ...>
    <Telnet server="127.0.0.1" port="12345" id="telnet" />
    <mx:Panel>
        <Terminal id="terminal" dataProvider="{telnet}" />
    </mx:Panel>
</mx:Application>