我们通常希望给flexViewer框架加上权限,使不同角色的人有不同的权限,怎样做呢?以下是我研究的一种方法,大家看看行不行。
1、改写flexviewer框架com.esri.viewer包下的ViewerContainer.mxml文件。在此文件中声明一个public变量代表配置文件的路径public var config:String;
2、在 private function init():void方法中加入代码configFile = config;
3、改写index.mxml代码如下:<fx:Script>
??<![CDATA[
???
???privatefunction initApp():void{
????lblCheckCode.text=GenerateCheckCode();
???}
???
???protectedfunction Submit_clickHandler(event:MouseEvent):void
???{
????this.currentState= "index";
????if(txtUname.text== "jerry")
????{
?????myViewer.config= "config-all.xml";
????}
????if(txtUname.text== "maorey"){
?????myViewer.config= "config.xml";
????}
????
???}
???
???privatefunction GenerateCheckCode():String{
????varran:Number;
????varnumber:Number;
????varcode:String;
????varcheckcode:String="";
????//生成四为随机数
????for(vari:int=0;i<4;i++){
?????ran=Math.random();
?????number=Math.round(ran*1000);
?????if(number%2==0)
??????code=String.fromCharCode(48+(number));
?????else
??????code=String.fromCharCode(65+(number&));
?????checkcode+=code;
????}
????
????returncheckcode;
???}
??]]>
?</fx:Script>
?<s:states>
??<s:Statename="login" />
??<s:Statename="index" />
?</s:states>
?
???<fx:Style source="defaults.css"/>
???<fx:Metadata>
???????[ResourceBundle("ViewerStrings")]
???</fx:Metadata>
???<viewer:ViewerContainer id="myViewer"includeIn="index">
???????<viewer:configManager>
???????????<managers:ConfigManager/>
???????</viewer:configManager>
???????<viewer:dataManager>
???????????<managers:DataManager/>
???????</viewer:dataManager>
???????<viewer:mapManager>
???????????<managers:MapManager/>
???????</viewer:mapManager>
???????<viewer:uiManager>
???????????<managers:UIManager/>
???????</viewer:uiManager>
???????<viewer:widgetManager>
???????????<managers:WidgetManager/>
???????</viewer:widgetManager>
???</viewer:ViewerContainer>
?<s:BorderContainerid="MainContainer"
???????width="100%"
???????height="100%"
???????includeIn="login">
??<s:Panelid="pnlLogin"
????width="300"
????height="200"
????title="login"
????horizontalCenter="0"
????verticalCenter="0">
???<s:layout>
????<s:VerticalLayouthorizontalAlign="center"
?????????verticalAlign="middle"/>
???</s:layout>
???<s:HGroupgap="5" horizontalAlign="center">
????<s:Labeltext="用户名:" id="lblName"/>
????<s:TextInputid="txtUname"/>
???</s:HGroup>
???<s:HGroupgap="5" horizontalAlign="center">
????<s:Labeltext="密??? 码:"id="lblPwd"/>
????<s:TextInputid="txtPwd" displayAsPassword="true"/>
???</s:HGroup>
???<s:HGroupgap="5" horizontalAlign="center">
????
????<s:Labeltext="校验码:"/>
????<!--"校验码"输入框 -->
????<s:TextInputid="txtCheckCode" maxChars="4" width="40"/>
????<!--"校验码"标签 -->
????<s:Labelid="lblCheckCode" color="#377CD0"/>
????<mx:LinkButtonlabel="换一张"
?????????id="linkbtnReGenerate"
?????????click="lblCheckCode.text=GenerateCheckCode();"
?????????fontFamily="Georgia"
?????????fontSize="10"/>
???</s:HGroup>
???<s:HGrouphorizontalAlign="center">
????<s:Buttonlabel="登录" id="Submit"click="Submit_clickHandler(event)"/>
???</s:HGroup>
??</s:Panel>
?</s:BorderContainer>
4、测试结果