当前位置:软件学习 > Flash >>

As3加载外部swf影片文件实现详解

最简单的方法

 代码如下 复制代码

var my_urlloader:Loader=new Loader();
my_urlloader.load(new URLRequest("swf.swf"));
my_urlloader.contentLoaderInfo.addEventListener(Event.COMPLETE,_show);
function _show(e:Event):void {
 addChild(my_urlloader);
}

例2

 代码如下 复制代码

import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;

var mc:MovieClip = new MovieClip();

function startLoad($swf:String)
{
var ldr:Loader = new Loader();
var mRequest:URLRequest = new URLRequest($swf);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
ldr.load(mRequest);
}

function onCompleteHandler($e:Event)
{
mc = $e.currentTarget.content as MovieClip;
addChild($e.currentTarget.content);
}
function onProgressHandler($e:ProgressEvent)
{
var percent:Number = $e.bytesLoaded/mProgress.bytesTotal;
trace(percent);
}
startLoad("MouseActions.swf");

上两两个是简单加载,如果要实现AS3 载入外部swf文件并与之交互话我们可照下面方法。

Loader类载入.swf文件,然后通过Loader实例的content 属性访问

 代码如下 复制代码

ExternalMovie代码:

 package {
 import flash.display.Sprite;
 import flash.display.Shape;
 public class ExternalMovie extends Sprite {
  private var _color:uint=0x000000;
  private var _circle:Shape;
  public function ExternalMovie() {
   updateDisplay();
  }
  private function updateDisplay():void {
   //  如果circle 没有创建则创建之并显示
   if (_circle == null) {
    _circle=new Shape  ;
    addChild(_circle);
   }
   //  清除以前画的内容重新画并填充之
   _circle.graphics.clear();
   _circle.graphics.beginFill(_color);
   _circle.graphics.drawCircle(100,100,40);
  }
  //  改变颜色
  public function setColor(color:uint):void {
   _color=color;
   updateDisplay();
  }
  //  获取颜色
  public function getColor():uint {
   return _color;
  }
 }
}

 
LoaderExample代码:

package {
 import flash.display.*;
 import flash.net.URLRequest;
 import flash.events.Event;
 public class LoaderExample extends Sprite {
  private var _loader:Loader;
  public function LoaderExample(   ) {
    //  创建Loader并显示
    _loader = new Loader(   );
    addChild( _loader );
    //  添加于载入swf文件的交互事件
    _loader.contentLoaderInfo.addEventListener( Event.INIT,handleInit);
    //  载入外部文件
    _loader.load( new URLRequest( "ExternalMovie.swf" ) );
  }
  //  当文件载入完时触发该函数
  private function handleInit( event:Event ):void {
   //  这里设置为*  就是指事先不知道载入什么类型
   var movie:* = _loader.content;
   //  获得颜色值,显示为0
   trace( movie.getColor( ) );
   //  设置颜色
   movie.setColor( 0x016be2 );
  }
 }
}

补充:flash教程,As3.0
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,