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,0,swfStageW,swfStageH);
this.addChild(_loader);
trace(_loader.width);
_loader.x=100;
_loader.y=100;
}

             

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值