[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 メーリングリストの案内