今天公司遇到个很头疼的问题。
Flex工程本地调试可以通过,发到ftp用IE浏览就出现类型转换错误,
说ArrayCollection@12631a61无法转换为ArrayCollection,没天理,同类型还不让转了,一开始完全摸不着头脑。
后来Google上找了点资料,才发现原来是域的问题,所以本地调试看不出来。
项目中的SWFLoader加载的swf和主应用不在同一个域,所以它们引用的同数据类型会不匹配(我是这么理解的,有误请高人纠正)。
类似这样的情况只要把SWFLoader加载设置成同域就可以了。代码如下:
以上是伪代码,注意一定要把loader.content加入UIComponent,才可以,直接加SWFLoader仍然报错,不知道为什么
附上网上找的设置其他域代码:
看来域还是一个很有必要研究的问题,尤其是对于Adobe公司设计的很独特的安全机制,如果没有准备很有可能给一棒子打闷。。。