随笔-8  评论-8  文章-10  trackbacks-0

1.如何动态载入mxml文件
       在web开发中,往往需要讲网站中的所有页面用树形列表体现出来,而这些页面的地址是存在于数据库中的,那么前台AS代码中只能拿到
这个数据的XML格式,最初的设想是用eval来实现,但AS3中取消了eval,后来又使用反射,无奈AS3的反射实在是有点问题,最后查到可以用
ModuleLoader来解决这个问题。
       主程序
 1<?xml version="1.0" encoding="utf-8"?>
 2<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 3    <mx:Script>
 4        <![CDATA[
 5            import mx.events.ListEvent;
 6            import mx.controls.Alert;
 7            
 8            function showCanvas(event:ListEvent) {
 9                var selectedNode:XML = Tree(event.target).selectedItem as XML;
10                Alert.show(selectedNode.@name);
11                rightCanvas.url="StuModule.swf";//url指向StuModule.mxml
12                rightCanvas.loadModule();//发出指令调用模块
13
14            }
15        ]]>
16    </mx:Script>
17    <mx:XMLList id="ct">
18        <node name="根节点">
19            <node name="学生管理">
20                <node name="学生浏览"/>
21                <node name="学生查看"/>
22            </node>
23            <node name="班级管理">
24                <node name="班级浏览"/>
25            </node>
26        </node>
27    </mx:XMLList>
28    
29    <mx:Panel layout="vertical" width="80%" height="80%" x="63.5" y="58">
30        <mx:HDividedBox width="100%" height="100%">
31            <mx:Tree width="20%" height="100%" dataProvider="{ct}" showRoot="false"
32                 labelField="@name" change="showCanvas(event);"/>
33            <mx:ModuleLoader id="rightCanvas" width="80%" height="100%" />
34        </mx:HDividedBox>
35    </mx:Panel>
36</mx:Application>
37

子程序:
1<?xml version="1.0" encoding="utf-8"?>
2<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300">
3    <mx:Canvas width="100%" height="100%">
4        <mx:Label x="243.5" y="181" text="asdfa;sldkfjaks;djf;alskdjfkld" width="144" height="103"/>
5    </mx:Canvas>
6</mx:Module>
注意被加载的子程序一定要继承自Module




每天进步一点点

posted on 2009-05-15 01:22 应越 阅读(237) 评论(0)  编辑  收藏 所属分类: Flex3 & ActionScript3

只有注册用户登录后才能发表评论。


网站导航: