加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 20:10:03 所属栏目:百科 来源:网络整理
导读:最近做的项目中,考虑到有用户提交的swf中可能会存在一些不在舞台以内的东西,比如说有一个太阳东升西落的效果,一开始太阳是在舞台以外的,到了某帧才移动到舞台内的,但用户只希望看到舞台内的东西,不希望看到舞台外的东西。 我们使用loader来加载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; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读