用flex4开发一网站后台,今天遇到一个问题,很诡异,写了个自定义上传图片的组件,用在模块里面,然后再加载主文件后,出现异常。于是试了试,直接把组件放在主文件,发现正常,并且模块里面的同一组件也好了。崩溃。
主文件去掉那个组件后,模块里的继续异常,反复折腾后,检查发现上传成功了,就是Alert的样式没有了,全部堆上顶上方中间。猜想可能是Alert的问题。
于是直接在模块中使用Alert测试,果然,样式出错,崩溃,搜索之,看到这个帖子
Flex4 Module中不能Alert?
在仔细阅读了flex4语言参考里面关于Alert,ApplicationDomain等相关内容后,按里面编程浪子的方法修改,有变化,Alert组件的半透明白色背景出现了,可是主体部分还是堆在上方,崩溃。
于是又试了jialong的方法,修改Alert.show的第四个参数parent:Sprite为Sprite(FlexGlobals.topLevelApplication),直接报错,没有FlexGlobals这个东西。
几乎放弃,看某篇文章,发现Alert.show的第四个参数用的this。修改试之,好了。喜极而泣。
发现如果去掉编程浪子那些东西,只是show加this,Alert主体正常,但是大背景没有,并且按钮颜色也不正常。
感谢qiushuli,编程浪子,jialong。同事帮搜英文,说是adobe说这就是个BUG。郁闷。
好了,给出我的代码,编程浪子用的是ModuleLoader,我的项目用的是IModuleInfo和ModuleManager,看手册发现ApplicationDomain.currentDomain都是加在load方法里面。
本文遵循署名-非商业性使用共享协议,转载请注明。