- Module页面嵌套子Module页面
直接用标签嵌入是不行的,无法显示出来,需要用到 ModuleManager 使用ModuleInfo 的 addEventListener 判断当子Module 载入完成后,才可以绑定父 Module 的 ModuleLoader 标签。
private var info:IModuleInfo; private function init(event:FlexEvent):void { info = ModuleManager.getModule("xxx/childModule.swf"); info.addEventListener(ModuleEvent.READY, moduleHandler); info.load(); } private function moduleHandler(event:ModuleEvent):void { pagelbl.addChildAt(event.module.factory.create() as DisplayObject, 0); }
要获取这个 子Module 中的方法对象:
var _module:Object = pagelbl.getChildAt(0);
假如这个 子Module 中有这些个的方法,成员: (假设 childModule.mxml 中 嵌入一个 childModule.cs)
public var xxxId:String = '0'; public var yyyId:String = '0'; public var executeSuccess:Function; [Bindable] public var shapeObj:Object = {}; public function formdatas(json:Object):void { //... }
那么就用 _module.xxxId, _module.yyyId 就可以访问 childModule 中的对象...
- 有些组件在 Module 页面,无法正常显示,这有可能是需要其他的一些配置,但有可能你直接把这个配置写在本页面(比如: fx:Declarations 内), 还是无法显示,但又找不到错误提示,这时你可以把配置写在 application 页面的 '定义' 标签内试 (fx:Declarations)。
- 要记得把 Module 添加到 : 项目 - 属性 - Flex模块中去,不然会无法显示!
- 解决 Module 页面调用 Alert.show [TitleWindow] 弹窗透明问题:
要在所在的 Application 父页面 Script 全局添加 :
import mx.managers.PopUpManager; private var pop:PopUpManager=new PopUpManager();
调用的Alert.show 尽量前面四个参数都写出来:
Alert.show(“提示信息”,”标题”, Alert.OK, this);
当Alert.show 是在异步后调用,或是在回调方法中调用的:
则需要在异步调用,或是在回调方法前面定义:var that:Sprite = this;
然后用 that 代替 this;
-
ArrayCollection 的 filterFunction:
用于批量修改 ArrayCollection 中键所对应的值:arrayCollection.filterFunction = filterFunction; arrayCollection.refresh(); private function filterFunction(item:Object):Boolean { item['field'] = newValue; return true; }
-
有可能在 项目 - 属性 - 构建路径 - 源路径, 无法添加文件夹 (不懂是不是破解版的问题):
这时可以通过在项目根目录下的 .project 以及 .actionScriptProperties 文件内的某位置添加相应的配置即可.
.project:<linkedResources> <link> <name>[source path] src</name> <type>2</type> <location>X:/xxx/develops/flex/projectName/src</location> </link>
.actionScriptProperties, compile标签下:
<compilerSourcePath> <compilerSourcePathEntry kind="1" linkType="1" path="E:/xxx/develops/flex/projectName/src"/> </compilerSourcePath>
-
用 PopUpManager 拖动 TitleWindow 如果 TitleWindow 内嵌套 iframe,如果TitleWindow 是spark 类的,拖动就会发生相对位移;
用 mx 类型的TitleWindow 即可;
- Module 所在的 父 Application 页面配置了 <s:Scroller 滚动标签,如果 Module 根标签 设置 height='100%', 滚动条不显示,应该去掉,或是设置固定高度值。
- 界面容器组件随窗口改变而改变,在界面初始化时添加代码:
this.systemManager.addEventListener(Event.RESIZE, winResizeHandler); private function winResizeHandler(event:Event):void { stage.scaleMode = StageScaleMode.NO_BORDER; //... }
- 如果要使用 无标题的 Panel 可以使用 Canvas
Canvas 以及 XBox 可以 addChild Module,XGroup 好像不行。
Label 也可以添加 Module ,但 Module 内的 Form 无法点击。