2009-03-01から1ヶ月間の記事一覧

Ctrl+EnterとAlt+EnterでEvent.CHANGEが呼ばれない

何が原因かわからないのであまり深くは追求しないが、UITextField(TextFieldは未確認)で、Ctrl+EnterまたはAlt+Enterを入力すると、見た目改行が入るのにEvent.CHANGEが呼ばれない。不思議なのは同じ入力を2回以上するとちゃんと呼ばれることだ。 複数行入力…

KEY_DOWNとCHANGEのThreadへの影響

「同一関数内でevent関数を使って同じオブジェクトに対してKeyboardEvent.KEY_DOWNとEvent.CHANGEをlistenすると、KEY_DOWNしか呼ばれない」という、そうめんをやってきた中で一番困る現象がある。 これの解決法は、KEY_DOWNとCHANGEをlistenするThreadを別…

Ctrl+EnterとAlt+EnterでEvent.CHANGEが呼ばれない(解決編)

いろいろ調べた結果、これらは\rを入力しているのだが\rは「なぜか」文字列の足しになってないようだ。 というわけで\nを入力させればよい。KEY_DOWNのハンドラに次のように書く。postareaはTextArea. if (e.keyCode == Keyboard.ENTER && (e.controlKey == …

TextAreaのundoの実装3

残りは、KEY_DOWNにundoしたときの処理を書くだけ。 KEY_DOWN private function onKeyDown(e : KeyboardEvent) : void { prepareHistory(); if (e.ctrlKey && e.keyCode == Keyboard.Z) { var item : Object = history.pop(); if (item) { ta.text = ta.text…

TextAreaのundoの実装2

というわけで実装。これを書いているとだんだん他の方法で書き直したくなってくる、ふしぎ!実装するために検出しなければいけないイベントは KeyboardEvent.KEY_DOWN Event.CHANGE Event.CUT Event.PASTE の4つ。テキスト自体が変わる操作が対象。 例によっ…

TextAreaのundoの実装1

TextAreaにundo機能を実装してみたけれど、結構量ありそうなので分けて書くことにする。というわけで今回は具体的なコードに入る前の準備。TextAreaに限らず、テキストを扱うmxコンポーネントではcut/copy/pasteはあるがなぜかundoはない、という単純な背景…

Window

Windowはなぜかインスタンスの使い回しができない。closeしたら二度とopenできない。よって、開こうとするたびにインスタンスを作らなければならない。(Flexのバグとか書いてあった気もする) もちろん半透明化もできるしドラッグもできる。TestWindow.mxmlに…

PopUpWindow

PopUpWindowはFlashのほうでも使えることもあって、参考資料が多い。PopUpWindowというクラスではなく、PopUpManagerにより追加されるものなので、基本的には何でもアリ。 Windowの子ウィンドウとして働くが、Windowの外側には出られない。(正確には表示さ…

PopUpWindowとWindowの開き方、閉じ方のまとめ

一通りわかったつもりになったので、ここでまとめておく。なお、現状では同一画面に1個までしか存在しないようなものしか必要ないので、その条件で。

Menuについて考える

常時表示しておくわけでもないけど、すぐアクセスしたいものはメニューバーに置かざるを得ないが、かといってそういう項目はそんなにないので、TLifeのWindow上部にメニューを置くのを躊躇ってきた。 で、StatusBarをカスタム化して、右側にメニューバー(Men…

MenuBarのラベルがXMLっぽくなってうまく表示されないよ!

こんな簡単なことでずっと悩んでたので書いとく。labelField設定しろよ!