微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swf超出舞台的部分不想显示出来的解决方法

最近做的项目中,考虑到有用户提交的swf中可能会存在一些不在舞台以内的东西,比如说有一个太阳东升西落的效果,一开始太阳是在舞台以外的,到了某帧才移动到舞台内的,但用户只希望看到舞台内的东西,不希望看到舞台外的东西。

我们使用loader来加载swf,加载完之后,可以使用loader.scrollRect属性来使在该swf中舞台之外的东西显示为透明的,为了防止用户加载的东西可能是老版本的swf(flash cs3 以前的版本做出来的swf,加载进来loader.content 是AVM1Movie类型,现在的常见的flash cs3,c4,cs6等都是MovieClip),我们使用loader来显示该swf,这样不管是新的还是老的都可以正常显示出来。

下面上代码

                    private var _swfUrl:String="assets/243373236374442.swf";

                   private var _urlRequest:URLRequest;
   private var _loader:Loader;


                  _urlRequest=new URLRequest(_swfUrl);
 _loader=new Loader;

_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadSuccessHandler);
_loader.load(_urlRequest);    


                 private function loadSuccessHandler(event:Event):void { var swfStageW:int=_loader.contentLoaderInfo.width; var swfStageH:int=_loader.contentLoaderInfo.height; var loaderW:int=_loader.width; var loaderH:int=_loader.height; var contentW:int=_loader.content.width; var contentH:int=_loader.content.height; trace(swfStageW,swfStageH); trace(loaderW,loaderH); trace(contentW,contentH); _loader.scrollRect=new Rectangle(0,swfStageW,swfStageH); this.addChild(_loader); trace(_loader.width); _loader.x=100; _loader.y=100; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐