[akabana-user:241] ViewStackの2ページ目以降でActionが呼び出せない、 同じ子部品を2つ宣言するとエラーが発生する
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2010年 7月 6日 (火) 14:27:15 JST
こんにちは、フジワラです。
先日から連続の質問で申し訳ありません。
下記の現象について、原因が分かる方がいらっしゃいましたら、アドバイスをお願いできないでしょうか。
現象は2つあり、関連している可能性があると考えて、まとめたメールにしました。
Yui-frameworksの使い方を間違っているか、それ以前にFlexの使い方を間違っていると疑っているのですが
自力で解決できずにおります。
長文になり、大変申し訳ありません。どうかよろしくお願いいたします。
*** 以下、現象の説明になります。 ***
現象1:
ViewStackの2ページ目以降に配置した画面(Yui-frameworksで実装)で、Actionのメソッドが呼び出せない。
プロジェクトの構成は以下です(簡略化してます)。
Srcフォルダ
Main.mxml
actionフォルダ
各画面のaction.as
helperフォルダ
各画面のhelper.as
viewフォルダ
View1View.mxml
View2View.mxml <- NavigatorContent型
View3View.mxml <- NavigatorContent型
View1内にViewStackを用意して、1ページ目にView2を、2ページ目にView3を割り当てました。
(View2View,View3ViewのルートはNavigatorContent型です)
*** View1Viewのイメージ ***
<s:Group>
<s:Panel>
<mx:ViewStack id="viewstack1">
<view:View2View id="stack1"/>
<view:View3View id="stack2"/>
</mx:ViewStack>
</s:Panel>
<s:Group>
上記のようにして、アクティブなStackを切り替えて動作を確認すると
stack1は正常に動作する(View->Actionの呼び出しができる)のですが、stack2はView->アクションの呼出ができませんでした。
stack1とstack2の行を入れ替える(stack2を1ページ目にする)とstack2も正常に動作するので、View2,View3の実装は正しいと考えています。
現象2:
画面に同じ子要素(Yui-frameworksで実装)を複数表示しようとすると例外になる。
プロジェクト構成は現象1と同様です。
親画面(Main.mxmlまたは、View1View.mxml)に、同部品(View2View)を2つ宣言して起動するとエラーになります。
*** View1Viewに宣言した場合のイメージ ***
<s:Group>
<view:View2View id="aaa"/>
<view:View2View id="bbb"/>
<s:Group>
*** 表示されたエラーのスタックトレース ***
Error: roorView
at org.seasar.akabana.yui.framework.core::ViewComponentRepository$/addComponent()
at org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/processRegisterView()
at org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/processRegisterComponent()
at org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/doRegisterComponent()
at org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/addedToStageHandler()
at flash.display::DisplayObjectContainer/addChildAt()
at mx.managers::SystemManager/preloader_preloaderDoneHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2497]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/displayClassCompleteHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:555]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::SparkDownloadProgressBar/initCompleteHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\preloaders\SparkDownloadProgressBar.as:1078]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/dispatchAppEndEvent()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:358]
at mx.preloaders::Preloader/appCreationCompleteHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:563]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:12266]
at mx.core::UIComponent/set initialized()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1577]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:759]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]
以上です。
akabana-user メーリングリストの案内