0
点赞
收藏
分享

微信扫一扫

使用一个SWF加载另一个SWF中影片剪辑的方法


首先我们要建立一个image的FLA文件,在image.fla文件中拖入2 幅图片,将其转换为影片剪辑,在库中右

键,选择"属性",然后ActionScript导出,在"类"命名为"ImageMM",另一个剪辑命名为"Image1",然后发布

该影片(不需要将剪辑拖到场景上);

 

现在我们再新建一个FLA文件为main,把以下代码存在一个AS文件中,命名为Main ,在该FLA外联这个AS

文件然后发布就可以了(注意,现在的这个main.swf必须与前面image.swf要在同一文件夹下),打开

main.swf,点击鼠标左键试试,显示一张图片对不对?松开鼠标,显示另一张图片!

这个就是简单的使用一个swf文件读取另一个swf文件中图片的方法,当然还是可以延伸的,自己可以试试!


package{

 import flash.display.Sprite;
 import flash.events.*;
 import flash.net.URLRequest;
 import flash.display.Loader;
 import flash.display.MovieClip;
 import flash.display.LoaderInfo;
 import flash.system.*;

 public class Main extends Sprite {
    private var loadBitmap:Loader;
    private var imageArr:Array=new Array();
    public function Main():void{
     if(stage){
      init();
     }else{
      addEventListener(Event.ADDED_TO_STAGE,init);
     }
    }
    private function init(e:Event=null):void{
     if(hasEventListener(Event.ADDED_TO_STAGE)){
      removeEventListener(Event.ADDED_TO_STAGE,init);
     }
     loaderImageJPG();
    
    }
    private function loaderImageJPG():void{
     loadBitmap=new Loader();
     loadBitmap.contentLoaderInfo.addEventListener(Event.COMPLETE,swfLoaderEnd);
     loadBitmap.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,outPutError);
     loadBitmap.load(new URLRequest("image.swf"));
    
    }
    private function outPutError(e:IOErrorEvent):void{
     trace("Sorry"+e);
    }
    private function swfLoaderEnd(e:Event):void{
     var loaderImage1Class:Class=loadBitmap.contentLoaderInfo.applicationDomain.getDefinition("Image1") as Class;
     var image1:MovieClip=new loaderImage1Class() as MovieClip;
     imageArr.push(image1);
     var swfLoaderEndImageMM:Class=e.currentTarget.applicationDomain.getDefinition("ImageMM") as Class;
     var imageMM:MovieClip=new swfLoaderEndImageMM() as MovieClip;
     imageArr.push(imageMM);
    
     listenMouseClick();
    }
    private function listenMouseClick():void{
     stage.addEventListener(MouseEvent.MOUSE_DOWN,showImage1);
     stage.addEventListener(MouseEvent.MOUSE_UP,showImage2);
    }
    private function showImage1(e:MouseEvent):void{
     try{
      removeChild(imageArr[1]);
     }catch(e){
      trace("Sorry");
     }
     addChild(imageArr[0]);
    }
    private function showImage2(e:MouseEvent):void{
     try{
      removeChild(imageArr[0]);
     }catch(e){
      trace("Sorry");
     }
     addChild(imageArr[1]);
    
    }
   
 }
 }

举报

相关推荐

0 条评论