主窗体的实现

liusdream 2011-02-14 01:38:10
flex怎么实现左边菜单,右边主窗体,点击左边的,右边的窗体里加载不同的模块
...全文
105 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jwxkk 2011-02-23
给你个参考代码


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" fontSize="12" creationComplete="init()" layout="absolute">

<mx:Style source = "theme/yflexskin/yflexskin.css"/>
<mx:Style source = "theme/myTheme.css"/>

<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private var popUpManager : PopUpManager;//解决模块引用后PopUp窗口提示找不到对象的问题

import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.managers.PopUpManager;
import mx.utils.ObjectUtil;
import mx.utils.URLUtil;

private var _sDbType:String;//数据源类型

private function init():void
{
//获取url参数是
var myBroser:IBrowserManager=BrowserManager.getInstance();
myBroser.init();
var vals:Object=URLUtil.stringToObject(myBroser.fragment);

_sDbType = vals.g;


switch(_sDbType){


case "gufeizongliang":
loader.unloadModule();
loader.url="GuFeiZongLiang/AppGuFeiZongLiang.swf";
loader.loadModule();
break

case "gufeichanshengliang":
loader.unloadModule();
loader.url="GuFeiChanShengLiang/AppGuFeiChanShengLiang.swf";
loader.loadModule();
break

case "weifeizongliang":
loader.unloadModule();
loader.url="WeiFeiZongLiang/AppWeiFeiZongLiang.swf";
loader.loadModule();
break

case "weifeichanshengliang":
loader.unloadModule();
loader.url="WeiFeiChanShengLiang/AppWeiFeiChanShengLiang.swf";
loader.loadModule();
break

case "yifeizongliang":
loader.unloadModule();
loader.url="YiFeiZongLiang/AppYiFeiZongLiang.swf";
loader.loadModule();
break

case "yifeichanshengliang":
loader.unloadModule();
loader.url="YiFeiChanShengLiang/AppYiFeiChanShengLiang.swf";
loader.loadModule();
break

case "gongyeweifeizongliang":
loader.unloadModule();
loader.url="GongYeWeiFeiZongLiang/AppGongYeWeiFeiZongLiang.swf";
loader.loadModule();
break

case "gongyeweifeichanshengliang":
loader.unloadModule();
loader.url="GongYeWeiFeiChanShengLiang/AppGongYeWeiFeiChanShengLiang.swf";
loader.loadModule();
break

case "gufeizongliangdiqu":
loader.unloadModule();
loader.url="GuFeiZongLiang_DiQu/AppGuFeiZongLiang_DiQu.swf";
loader.loadModule();
break

case "gufeichanshengliangdiqu":
loader.unloadModule();
loader.url="GuFeiChanShengLiang_DiQu/AppGuFeiChanShengLiang_DiQu.swf";
loader.loadModule();
break

case "weifeizongliangdiqu":
loader.unloadModule();
loader.url="WeiFeiZongLiang_DiQu/AppWeiFeiZongLiang_DiQu.swf";
loader.loadModule();
break

case "weifeichanshengliangdiqu":
loader.unloadModule();
loader.url="WeiFeiChanShengLiang_DiQu/AppWeiFeiChanShengLiang_DiQu.swf";
loader.loadModule();
break

case "yifeizongliangdiqu":
loader.unloadModule();
loader.url="YiFeiZongLiang_DiQu/AppYiFeiZongLiang_DiQu.swf";
loader.loadModule();
break

case "yifeichanshengliangdiqu":
loader.unloadModule();
loader.url="YiFeiChanShengLiang_DiQu/AppYiFeiChanShengLiang_DiQu.swf";
loader.loadModule();
break

case "gongyeweifeizongliangdiqu":
loader.unloadModule();
loader.url="GongYeWeiFeiZongLiang_DiQu/AppGongYeWeiFeiZongLiang_DiQu.swf";
loader.loadModule();
break

case "gongyeweifeichanshengliangdiqu":
loader.unloadModule();
loader.url="GongYeWeiFeiChanShengLiang_DiQu/AppGongYeWeiFeiChanShengLiang_DiQu.swf";
loader.loadModule();
break

default :
loader.unloadModule();
loader.url="GuFeiZongLiang_DiQu/AppGuFeiZongLiang_DiQu.swf";
loader.loadModule();
}

}

]]>
</mx:Script>


<mx:ModuleLoader id="loader" width="100%" height="100%" y="0"/>


</mx:Application>

回复
jwxkk 2011-02-23
我了个去,模块就用模块么
正规的
<mx:ModuleLoader id="loader" width="100%" height="100%" y="0"/>
你可以google下ModuleLoader

其次方法很多,用box,addChild,state啥都行
回复
sjtuchan 2011-02-22
用state貌似挺好的
回复
jack_qdb 2011-02-21
这个是可以的,只要你控件用的熟练,这是很简的东西!一个是控件内的组件布局,还有就是点菜单触发事件,你想出来什么,事件里面写什么就可以了!很简单的,不要想的太复杂!
回复
limitlessx 2011-02-21
addChild()....怎么会不行?
回复
卟惹尘埃 2011-02-17
笨办法 用visible 和 includeInLayout
回复
yijianxiangde100 2011-02-16
<mx:HDividedBox> <mx:HBox> 都可以实现类似的功能。
回复
herowach 2011-02-15
这个当然能实现了,并且应用的场景相当多,flex主要是做企业级应用,而企业级应用大多都是由多模块组成的,左边的菜单用tree等导航栏,右边用一个视图切换容器就可以了啊,viewStack,state,module切换都可以啊
回复
xlgp2171 2011-02-14
可以实现,但比较麻烦,提供一个思路给你
左边当然是菜单,不管是用tree还是Accordion还是Menu
右边写一个组件,根据需求,可以在组件里面用ViewStack
写个专用于记载Module的类,结果add进ViewStack中
操作是点击菜单,通过响应事件,引发加载Module,这样加载模块
还可以去参考下一个Flex地图框架FlexViewer,那个框架就是采用菜单点击加载Module
回复
passself 2011-02-14
这个几乎不能实现,只能重写组件,不过太麻烦了
回复
相关推荐
发帖
Flex
创建于2007-12-13

4328

社区成员

多媒体/设计 Flex
申请成为版主
帖子事件
创建了帖子
2011-02-14 01:38
社区公告
暂无公告