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

来源:互联网 发布:中兴软件南昌公司如何 编辑:程序博客网 时间:2024/04/26 11:57

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

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

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

 

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

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

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

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

QQ:119278803

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]);
   
   }
  
}
}