使得Flex Module 100%最大化的方法

  

使得Flex Module 100%最大化的方法

 

问题:
当模块设置width及height为100%时,加载到父级容器后会发现模块并不能自动填充,即使ModuleLoader的width和height均设置为100%
若在模块中只加入Canvas测试,发现加载后其高宽值均为0.

解决:
(方法1)直接在模块参数中加入percentWidth="100" percentHeight="100"
例:
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" percentWidth="100" percentHeight="100" layout="absolute">
</mx:Module>
(方法2)在模块加载完成后设置模块percentWidth,percentHeight属性值为100
例子见源文件

部分源码说明:

设置ModuleLoader高宽为适应100%并注册ready,resize,error事件
<mx:ModuleLoader id="mymodule" width="100%" height="100%"
        url="{moduleURL}" 
        ready="readyModule(event);" 
        resize="resizeHandler(event);"
        error="errorModule(event)"/>

ModuleLoader的Ready事件:
重设模块的percentWidth和percentHeight.如果模块按方法1进行设置后,这两个可以不设置
private function readyModule(event:ModuleEvent):void{
        var tmpModule:ModuleLoader = event.target as ModuleLoader;
        var Mchild:* = tmpModule.child;

        Mchild.percentWidth = 100;
        Mchild.percentHeight = 100;
}

你可能感兴趣的:(Module,Flex,Flex,Module,100%,最大化)