跨SWF安全沙箱引起的类型转换问题

问题描述:
今天做Denizen Hello,用的是Gaia框架,LoadingPage调用IndexPage中的MapPainter类型的对象出现如下错误:
TypeError: Error #1034: 强制转换类型失败:无法将 com.couldhll.bitmaptext::MapPainter@24f793a1 转换为 com.couldhll.bitmaptext.MapPainter。

问题分析:
检查LoadingPage和IndexPage中的类型,确认都是com.couldhll.bitmaptext.MapPainter类型。
但是IndexPage中是MapPainter@24f793a1类型,而LoadingPage中是MapPainter类型。
开始怀疑IndexPage中有问题,但是无果。偶尔在Main.as中使用MapPainter类型的对象后,一切正常。

问题解决:
其实我们都知道Loader.load()后面一个参数是安全命名空间参数,要设置成:SecurityDomain.currentDomain。
在Gaia中,可以在site.xml中为page设定domain="current"。
本例如下:
<?xml version="1.0" encoding="UTF-8"?>
<site title="Hello" menu="true">
    <page id="index" src="index.swf" domain="current" >
        <page id="nav" src="nav.swf" depth="top" domain="current" >
            <page id="loading" title="Loading" src="loading.swf" menu="true" domain="current" />
   <page id="home" title="Home" src="home.swf" menu="true" domain="current" />
        </page>
    </page>
</site>

《Everything You Always Wanted to Know About Sex but Were Afraid to Ask》

“上帝赋予人类以性器官时要他性交的。”

“男性谦卑的真正原因只是每人想隐藏住自认为太小的阴茎。”

“性交是人生中少数可一而再、再而三的乐趣之一,一个人因情绪而失去他所应得的东西(至少未经奋战便失去)是件很可悲的事。”

“佛洛依德曾在他最悲观的时期下过这样的结论:‘在人类中,性事一种渐形衰萎的功能。’其实只要我们不让它衰萎,它便不会衰萎。”

“女人穿男人的衣服只是赶时髦,男人穿女人的服装却是‘性变态’。”

“如无需要,既无供应。”

《圈子圈套3》

“谈判中双方都会试探对方的底线,但没有人会用对自己并无实际好处的条件去屡屡触碰对方的底线。”

“搞清他们一连串的手段和目的就可以对症下药,如果他们的最终目的可以为咱们所接受,只是他们选择的手段在咱们看来行不通,咱们就要提出变通的手段;如果他们的最终目的不为咱们所接受,咱们要么把他们引向新目的,要么彻底打消他们的非分之想。”

“成功时要认清其中的偶然因素,失败时要检讨其中的必然因素。”

“成长,就是一个快乐越来越少的过程。”

“任何成功,都有太多的偶然;而任何失败,都有太多的必然。”

“成功,没有秘笈也没有捷径,成功没有充分条件,而是有无数的必要条件;相反,失败没有必要条件,倒是有无数的充分条件。”

“最出色的骑手往往会变成最危险的盗马贼。”

“所谓‘物色’,精辟地概括出人们所寻求所挑选的,无非一个是‘物’、一个是‘色’。”

“中学为体,西学为用。”

《圈子圈套2》

“中国人的节省,是从自己身上省下来的,所以叫勤俭;而犹太人的节省,是从别人身上省下来的,所以叫吝啬。”

“贪婪胜过恐惧了,就会孤注一掷;恐惧胜过贪婪了,就会畏缩不前。”

“老板看你的简历,是在寻找录用你的理由;下面的人看你的简历,是在寻找淘汰你的理由。”