ViewStack页上加载模块的问题
定义了三个ViewStack页,每页加载一个模块(login、mainPage、SalesDay)
<mx:ViewStack x="0" y="0" id="Pageviewstack" width="100%" height="100%" selectedIndex="0">
<mx:Canvas id = "ml1" label="ml1" width="100%" height="100%">
<ns1:login x="0" y="0" width="100%" height="100%">
</ns1:login>
</mx:Canvas>
<mx:Canvas id = "ml2" label="ml2" width="100%" height="100%">
<ns1:mainPage x="0" y="0" width="100%" height="100%">
</ns1:mainPage>
</mx:Canvas>
<mx:Canvas id = "ml3" label="ml3" width="100%" height="100%">
<ns1:SalesDay x="0" y="0" width="100%" height="100%">
</ns1:SalesDay>
</mx:Canvas>
</mx:ViewStack>
默认显示的是ml1页(加载的是登录模块)
在登录模块中有一个登录按钮,如果登录成功的话就跳转到第二个页(ml2)并加载mainPage模块
应该怎样跳转?
[解决办法]
登录成功,你吧 ViewStack.selectedIndex=1就可以了.
[解决办法]
ViewStack会产生一个数组,下载从0开始,
比如你在登录完后,就可以Pageviewstack=1.这个LS已经说过了.
有一个小问题:
ViewStack似乎不能传数据过去,(在第一次).比如:我在A.点击修改,想把一个Object传到B.
B是一个ViewStack.然后绑定一个[Bindable] obj:Object;并在开头用 CreationComplete=""init()
init里初始化obj,却得不到值.只有第二次才有值.
是我做得不对,还是只能这样了.
[解决办法]
不太清楚你表达的意思.
如果是用数据绑定.
你所操作的就是 绑定对象, 和ViewStack 就没有关系了.
这么会德不到,贴出来看看.
[解决办法]
1.点击登录按钮
2.验证用户身份并且设置View
Pageviewstack.selectedChild = ml2
[解决办法]
这是Application里的.<mx:ViewStack id="viewStack" selectedIndex="{model.workFlowState}"> <mx:VBox width="100%" height="100%"> <view:BookGrid id="dg" dataProvider="{bookscatalog.book}"/> <mx:ControlBar> <mx:Button label="查看图书" click="viewDetail()"/> <mx:Button label="删除图书" click="del()"> <mx:Button label="修改图书" click="edit()"/> </mx:ControlBar> </mx:VBox> <mx:VBox> <view:BookView id="v" label="bookview"/> <mx:HBox horizontalAlign="right"> <mx:Button label="返回" click="model.workFlowState=0"/> </mx:HBox> </mx:VBox>private function viewDetail():void{ model.workFlowState=1; v.book=XML(dg.selectedItem);//用这样的绑定, }BookView:-->[Bindable] public var book:XML;<mx:Form paddingTop="0" paddingBottom="0" paddingLeft="0" paddingRight="0"> <mx:FormItem label="Title:"> <mx:Label id="t" text="{book.title}"/> </mx:FormItem> <mx:FormItem label="ISBN:"> <mx:Label id="isbn" text="{book.@ISBN}"/> </mx:FormItem>............................略 </mx:Form>一片空白,这里的book在第一次进入时是没有东西的.第二次进入才有东西.(我选另一个的时候),可能是第一次进入,这个BookView还没有创建好,所以属性Book 是空的
------解决方案--------------------
private function viewDetail():void
{
viewStack.selectedIndex=1;
var xml:XML=XML(dg.selectedItem);
viewStack.addEventListener(Event.CHANGE, function(e:Event):void
{
viewStack_changeHandler(e, xml)
});
}
protected function viewStack_changeHandler(event:Event, xml:XML):void
{
Alert.show(xml.toString());
v.book=xml;
// TODO Auto-generated method stub
}
这样就可以了.