7月 132012
 
Adobe公式
Adobe翻訳

(公式翻訳はいつも読み難い・・・)
(しかもリンク切れてる…)

Flex itemRendererの理解 パート1:インラインレンダラ
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt1.html

Flex itemRendererの理解 パート2:外部レンダラ
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt2.html

Flex itemRendererの理解 パート3:通信
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt3.html

Flex itemRendererの理解 パート4:ステートとトランジション
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt4.html

Flex itemRendererの理解 パート5:効率
http://www.adobe.com/jp/devnet/flex/articles/itemrenderers_pt5.html

バナナ研究所翻訳

(パート5がない!)

 Posted by at 11:19
7月 132012
 

{$FLEX_HOME}/sdks/3.x.x/bin/jvm.configファイル内java.homeの設定ミスで発生する。
※{$FLEX_HOME}はFlexインストールディレクトリ

\やバックスラッシュは使用できない。
スラッシュを使用して指定する事。
また、相対パス指定ではカレントディレクトリが違う場合に起動できなくなる事があるため、絶対パス指定の方が良い。(Windowsの場合)

例)

java.home=C:/Program Files/Adobe/Flex Builder 3 Plug-in/jre 

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:

<channel-definition id=”my-amf-secure” class=”mx.messaging.channels.SecureAMFChannel“>
<endpoint uri=”https://{server.name}:{server.port}{context.root}/flex2gateway/” class=”flex.messaging.endpoints.AMFEndpoint “/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
</properties>
</channel-definition>

2. If the flex app is requested over http, then using https to connect backend:
<channel-definition id=”my-amf” class=”mx.messaging.channels.SecureAMFChannel“>
<endpoint uri=”https://{server.name}:{server.port}{context.root}/flex2gateway/” class=”flex.messaging.endpoints.SecureAMFEndpoint“/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
</properties>
</channel-definition>

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)とする事で対処できる。
もっといい方法やタイミングもあるかも。

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);
    }
} 

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クラスに変更すれば解決する。