7月 132012
 

SSLアクセラレータを使う時にどうぞ。

How to access flex app over https but connect to backend using http « Lin’s Blog

Many application needs to be accessed over secure connection, but only need to connect to the backend using non-secure connection, or vice versa. How do we accomplish that?

Secure connections can talk to secure and non-secure endpoints. Non-secure connections can only talk to non-secure endpoints. So you will need to configure your channel differently.

1. If the app is requested over https and then use http to connect to backend:
[xml]

false

[/xml]
2. If the flex app is requested over http, then using https to connect backend:
[xml]

false

[/xml]
3. For LCDS 2.5 and 2.5.1, the configuration would be enough.
For FDS 201, you need to apply the hotfix build 168076 as well. You can get the build 168076 from flex Tech support.

7月 132012
 
症状
  1. EditableなDataGridを用意する
  2. あるセルのテキストを選択状態にする
  3. グリッドをスクロールする(マウスホイールが分かりやすい)
  4. 関係のないセルにテキスト選択の黒枠が残る
原因

このバグ↓っぽい
[#SDK-11236] If you select text in a DataGrid and then scroll down, various rows in the new views have the same text selections – Adobe Bug System

指摘されているバージョンはFlex3のベータ版。
これはFlashPlayerのバグで、回避コードを書くことは可能だが、Flexでは対処を保留すると書かれている気がする。。

対処方法

とりあえずDataGridのfocusOutイベントで、セルに対してsetSelection(0, 0)とする事で対処できる。
もっといい方法やタイミングもあるかも。
[js]
public function DataGrid():void{
super();
addEventListener(FocusEvent.FOCUS_OUT, onFocusOutEnd, false, -10);
}

private function onFocusOutEnd(event:Event):void{
if(event.target is TextField){
//バブリングで処理。itemFocusOutでもいいかも。
TextField(event.target).setSelection(0,0);
}
}
[/js]

7月 132012
 

選択を解除するとselectedItemが-1になってしまう。
通常、editableでないComboBoxでは、明示的に指定しない限りselectedItemが-1になる事はない。

[#SDK-9402] [customer] Ctrl + Click the selected item returns selectionIndex=-1 for ComboBox – Adobe Bug System

バグではないらしい。
ヘルプのComboBoxのユーザ操作には載ってない動作なのだけど…
Listクラス依存の動作なので、他のList系コントロールでも同様の動作をするはず。

Listクラスを継承し、selectItemメソッドをoverrideしてCtrlキーを無視するように変更したListクラスを作成。
ComboBoxのdropdownFactoryに使用するListクラスを作成したListクラスに変更すれば解決する。

7月 132012
 
DOM3Events関連
  • ActionScript3(以下AS3)はDOM Level3 Eventsに準拠している。
     (イベントリスナの優先度など、一部に非準拠仕様も追加されている)
  • リスナは同期処理であると定義されており、1つのリスナ実行中に他のリスナが同時に実行される事はない。
  • リスナは追加された順に実行される。
    ※AS3ではaddEventListenerメソッドで実行優先度を指定できる。
  • リスナの実行順序は規定されているが、MouseEventKeyboardEvent等の一部を除きイベントの発生順序までは規定されていない。
  • EventTarget.dispatchEvent()によって新たにイベントが発生させられた場合、発生させたリスナの処理は新たなイベントの伝播が完了するまで再開しない。
  • EventオブジェクトのcurrentTargeteventPhaseプロパティは、DOM Eventsの実装によって自動的に更新されるもので、読み取り専用である。
7月 132012
 

環境:Flex2.0.1(どうやらFlex3.0でも変わってなさそう?)

このメモ以降にも色々調べたりAdobeとやりとりしたはずだが、よく覚えてない…
FlashPlayer10との絡みもあったはず。

FlexのTextInputはimeModeプロパティを指定した時変な動きをする。

以下のように入力項目が並んでいるとする。

  • 入力①:IME制御なし
  • 入力②:ひらがな
  • 入力③:IME制御なし

①にフォーカスがある状態で、IMEがONかつひらがな入力の場合、
①→②→③とフォーカスを移動すると③の時点でIMEがOFFになってしまう。
ちなみにIMEはOFFにされるが、変換モード(全角カタカナ、半角英数など)は①の状態を記憶しておき、③に移る時に元に戻している。

③では、②で変更されたモードをそのまま引き継ぐのが通常の動作のように感じる。
個人的には①のモードを記憶しておいて、戻ってくれたほうが使い勝手がいいと思うのだけど。。
Continue reading »

7月 132012
 
  • タイトルの長さとボタンの幅で決まる。
  • 継承でどうにかする事もできそうにない。
  • タイトルの末尾にスペースを付加して調整する事は可能。