[akabana-user:253] Re: [質問] 動的に追加されるコンポーネントに対するイベントハンドラ登録
arkw
[E-MAIL ADDRESS DELETED]
2010年 8月 9日 (月) 18:16:23 JST
有川です。
>
> <s:Button id="button1" includeIn="state1"/>
> <s:Button id="button2" includeIn="state2"/>
>
下記のようにルートタグ直下に定義したのでしょうか?
<?xml version="1.0" encoding="utf-8"?>
<s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009">
<s:Button id="b1" label="1" includeIn="State1"/>
<s:Button id="b2" label="2" includeIn="State2"/>
</s:VGroup>
> のようなかたちにして、stateを切り替えで addEventListener されるか検証してみました。
>
> (1) state1 -> state2 切り替え時
>
> button1 の listener が remove され、button2 の listener が add されました。
>
> (2) state2 -> state1 切り替え時
>
> button2 の listener が remove されましたが、button 1 の listener が add されませんでした。
>
> コードを追ってみたところ、先の件の isView に渡されている document が View ではなく、
> Application に変わっているようです。これって、どのように対処したらいいんでしょう...。
> 自分では対応案が見つかりません...。
>
これは既知のバグなのですが、原因は、Flex4のバグのためです。
ルートがGroupの場合、ルートタグ直下のコンポーネントのステートを切り替えると
コンポーネントのドキュメントの値がparentDocumentと同じになる現象です。
現状の回避策は、Groupをさらにネストすることです。
<?xml version="1.0" encoding="utf-8"?>
<s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009">
<s:VGroup>
<s:Button id="b1" label="1" includeIn="State1"/>
<s:Button id="b2" label="2" includeIn="State2"/>
</s:VGroup>
</s:VGroup>
また、
yui-frameworks study 1のハンズオンでは、質問や宜しくお願い致します。
以上です。
akabana-user メーリングリストの案内