首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

ViewStack页下加载模块的有关问题

2013-01-02 
ViewStack页上加载模块的问题定义了三个ViewStack页,每页加载一个模块(login、mainPage、SalesDay)mx:ViewS

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
}


这样就可以了.

热点排行