ie:stagewidth,stageheight的bug

刚进入游戏的时候需要通过stagewidth,stageheight来计算居中,结果在ie中怎么也不对。

后来搜索才知道,ie在这里存在bug.解决办法是监听onsize事件,直到stagewidth和stageheight值

正常的时候才进行初始化。

Same-definition Collisions 相同定义的冲突

有些时候可能会发生你引用的定义匹配到另外的应用程序域里的定义的交叉情况。这种情况将会产生如下强制转换类型错误:

TypeError: Error #1034: Type Coercion failed: cannot convert
	com.example::MyClass@51e1101 to com.example.MyClass.

你可以看到在不同内存空间里的定义用@符号进行了区分。虽然它们内部的代码可能是完全相同的(或不同),但是由于它们存在不同的应用程序域(或安全域)内,所以它们是两个不同的定义。

只有像Object那样的原生Flash Player定义才可以将位于不同域(甚至是跨安全域的)的定义关联起来。实际上,大多数时候声明一个跨域的变量类型的时候都需要用Object类型。

虽然我们可以用Object这种通用类型来解决定义冲突错误,实际上我们更应该合理安排应用程序域的位置来消除这种不匹配的情况。

游戏中通过通过一个小swf加载游戏主swf,小swf的文档类不能引用主swf的类,否则会出现上面描述的错误。

ps:遇到问题,不要盲目的去试验。先停下来想一想问题到底在哪里。如果没有思路可以在网上搜索一下。不要盲目的去试验。

posted @ 2013-10-15 11:44  Do.else  阅读(279)  评论(0编辑  收藏  举报