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

czx33859066 2008-09-20 03:32:36
最近用到了模块部分,开始研究
谁料昨天卡在了模块高宽设置上一个下午,找了些资料,解决了.

问题:
当模块设置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;
}

...全文
443 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaowenzhen 2009-06-08
  • 打赏
  • 举报
回复
我也找这个问题,我ModuleLoader大小是由ModuleLoader内部来定死的,原来也整了半天没有出来.

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧