Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
Adobe Flex SDK 3.3 (Release)
-
None
-
None
-
Affected OS(s): Windows
Affected OS(s): Windows XP
Browser: Internet Explorer 7.x
Language Found: Japanese
Description
Steps to reproduce:
1."Label"コンポーネントを、プロジェクトのデフォルトのApplicationコンテナに追加する。(この"Label"コンポーネントのtextプロパティは自由)
2.デフォルトのApplicationコンテナに、addEventListenerでEvent.ENTER_FRAMEイベントを登録する。
3.ApplicationコンテナのEvent.ENTER_FRAMEイベントハンドラで、"Label"コンポーネントのxプロパティを増加(もしくは減少)させる。(これで"Label"コンポーネントがフレーム毎に動くようになる)
4."Container"クラスを継承したコンポーネント(例: Panel, HBox, etc...)を新規mxmlファイルとして作成する。(以下、LabelOnlyPanel.mxmlファイルとする)
5.先ほどのLabelOnlyPanel.mxml内に、"Label"コンポーネントを追加する。("Label"コンポーネントのtextプロパティは自由。空(="")もOK)
6."Button"コンポーネントをプロジェクトのデフォルトのApplicationコンテナに追加する。
7.追加した"Button"コンポーネントに、addEventListenerでMouseEvent.CLICKイベントを登録する。
8."Button"コンポーネントのMouseEvent.CLICKイベントハンドラで、"addchild(new LabelOnlyPanel())"を実行するようにする。
9.アプリケーションをビルドし、実行させる。
10.デフォルトのApplicationコンテナ内で"Label"コンポーネントが動いているのを確認しながら、"Button"コンポーネントをクリックする。
※まとめて言うと、あるコンポーネント内で"Label"コンポーネントを移動させ続けている時に
別の"Label"コンポーネントを内包するコンポーネントを生成し、addChildしようとする。
Actual Results:
プロジェクトのデフォルトのApplicationコンテナにある"Label"コンポーネントの動きが速くなり、
またこの"Label"コンポーネントが動き続けている限り、LabelOnlyPanelコンポーネントが永遠に生成されない。
ただしLabelOnlyPanelコンポーネントが生成されないだけで、アプリケーションがハングするわけではない。
LabelOnlyPanelコンポーネント内に"Label"コンポーネントが存在しない場合は、問題は発生しない。
"Label"を動かすEvent.ENTER_FRAMEイベントハンドラではなく、代わりに極めて短い間隔で動くTimerオブジェクトの
TimerEventで動かしても問題が発生する。
"Label"のxプロパティの増減を何らかの手段で中断させると、その時点で表示されなかった
LabelOnlyPanelコンポーネントが表示されるようになる。
また、この問題はAIRアプリケーションでWindowコンポーネントでも同様の問題が発生する。
Mac OS X Leopard でもこの問題を確認した。
Expected Results:
何の滞りもなく、Buttonコンポーネントクリック後にLabelOnlyPanelコンポーネントが生成され、表示される。
Workaround (if any):
see attached files