[akabana-user:243] Re: ViewStackの2ページ目以降でActionが呼び出せない、 同じ子部品を2つ宣言するとエラーが発生する

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2010年 7月 12日 (月) 16:49:19 JST


こんにちは、フジワラです。

ありかわさん、ご回答ありがとうございました。
色々調べている間に、日にちが過ぎてしまい、応答が遅れました。もうしわけありません。

現象1について

>idは、xxxViewというふうにクラス名をキャメルでidをつけます。
この方法では現象は解決せず、その後調査したところ以下の方法で解決することができました。

View2View、View3Viewは、NavigatorContentをドキュメントルートにしていたのですが、
これが良くありませんでした。
View2View/View3ViewをGroupをドキュメントルートに変更し、
View1Viewのmx:ViewStack内にNavigatorContentを宣言して、NavigatorContent内にView2View/View3Viewを読み込むようにしたところ
期待通りの動作ができるようになりました。

ヘルプにも「NavigatorContent コンテナは、MX ナビゲーターコンテナの外では使用しないでください。」の記載がありました。
ここが読み取れていませんでした。

変更前後のソースを記載すると以下になります。

変更前(動作しない)
*** View1Viewのイメージ ***
<s:Group>
   <s:Panel>
       <mx:ViewStack id="viewstack1">
           <view:View2View id="stack1"/>  ←View2ViewのルートはNavigatorContent
           <view:View3View id="stack2"/>  ←View3ViewのルートはNavigatorContent
       </mx:ViewStack>
   </s:Panel>
<s:Group>

変更後(動作する)
*** View1Viewのイメージ ***
<s:Group>
   <s:Panel>
       <mx:ViewStack id="viewstack1">
           <s:NavigatorContent>
               <view:View2View id="stack1"/>  ←View2ViewのルートはGroup
           </s:NavigatorContent>
           <s:NavigatorContent>
               <view:View3View id="stack2"/>  ←View3ViewのルートはGroup
           </s:NavigatorContent>
       </mx:ViewStack>
   </s:Panel>
<s:Group>


現象2について

>まだ、同じViewは二回定義できません。
>部品としてViewを使いまわしたり定義することはyuiでは想定していません。
>使いまわすのであれば、コンポーネントですね。

こちらは了解しました。同時に2回定義するケースでは
コンポーネントとして作成する事にします。

以上です。


akabana-user メーリングリストの案内