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