前几天有同事做坐骑相关的工作时问了相关的问题,大意是一个子SWF动画文件,在第一帧上面写了stop(),如何在加载进来后调用让其开始运动?
深入研究了一下相关的API文档,发现其实比较简单的,但是涉及到应用程序域ApplicationDomain与安全域SecurityDomain,跨SWF调用时如果处理不好可能会有安全问题
我也是看了kevinCao翻译的文章后才稍微明白了点。网址如下:
http://kevincao.com/2010/11/security-domains/
其中讲了fp沙箱的作用:1.安全考虑2,使用沙箱来避免命名冲突的问题
Security.allowDomain()与crossDomain.xml的区别,以及ApplicationDomain是SecurityDomain的一部分,
其中对使用SharedEvent来进行跨SWF脚本调用还讲了一些,文档中SharedEvent相关联的类有ShaderJob,就是用ShaderJob来使PixelBender与fp主线程异步执行,Away3d 4.X里对于pixel bender的Shader好像就是这么做的。
下面是我的测试:
打开Flash pro新建一个文档命名为fuck1.fla,在其中创建动画并在第一帧上写上stop()之后生成swf文件,如下图:
创建一个文档命名为fuck2.fla,在其中写上对应加载代码,关键是第七行,之后编译会发现报错