使用Loader 类载入.swf
文件,然后通过Loader实例的content 属性访问。创建两个独立的.swf文件:ExternalMovie.swf
和LoaderExample.swf。第一个稍后要被载入到第二个上ExternalMovie.swf 的代码如下:var
_color:uint=0x000000;
var _circle:Shape;
updateDisplay( );
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 );
}
// 改变颜色
function setColor(color:uint):void
{
_color=color;
updateDisplay( );
}
// 获取颜色
function getColor( ):uint
{
return _color;
}
现在通过LoaderExample.swf去载入ExternalMovie.swf,代码如下:// 创建Loader并显示
var _loader:Loader= new Loader( );
addChild(_loader);
// 添加于载入swf文件的交互事件
_loader.contentLoaderInfo.addEventListener(Event.INIT,handleInit);
// 载入外部文件
_loader.load(new URLRequest("ExternalMovie.swf"));
// 当文件载入完时触发该函数
function handleInit(event:Event):void
{
// 这里设置为* 就是指事先不知道载入什么类型
var movie:* =_loader.content;
// 获得颜色值,显示为0
trace(movie.getColor( ));
// 设置颜色
movie.setColor(0xFF0000 );
}
LoaderExample.swf 的代码完成了与被载入swf进行交互,有两个重要步骤:
监听init 事件
通过content属性访问载入的swf。
当外部的swf载入完成并进行初始化时就会激活 init 事件,只有激活了该事件之后才可控制,否则就会出现运行时错误。
要控制外部载入的swf文件,必须先得到它的引用,这可通过Loader类的content属性获得。上面的例子中loader.content指向外部
swf引用。如果loader 变量不可用,还可通过event.target.content得到Loader的content属性。
ontent 属性是只读的,返回DisplayObject类型对象。在LoaderExample.swf
代码中,movie变量类型为*,实际上也可以指定为DisplayObject。