请帮忙制作一个AS3的类文件,可以加载外部swf文件库内的影片剪辑

想制作一个AS3类,名为LoadSwfSource.as实现下述功能载入外部swf文件库内的影片剪辑元件该类在实例化的时候支持四个参数,第一个是外部swf文件的名字,第二... 想制作一个AS3类,名为LoadSwfSource.as
实现下述功能
载入外部swf文件库内的影片剪辑元件
该类在实例化的时候支持四个参数,第一个是外部swf文件的名字,第二个是该swf文件库内的链接的名字,第三、四个是在舞台上的xy坐标
一旦实例化了LoadSwfSource类,就瞬间将外部swf文件库内指定链接的影片剪辑放到了舞台上指定的位置

比如说,我建立一个fla文件(和LoadSwfSource.as文件在同一个文件夹内),在时间轴上写代码:
var mc:LoadSwfSource=new LoadSwfSource("hl.swf","nice",200,300)
就在舞台上瞬间生成了一个影片剪辑,调用的是hl.swf文件库内的链接名为nice的影片剪辑,且在舞台的200,300处显示

请问,可否实现上述要求。若能实现,这个LoadSwfSource类怎么写?
PS:代码请尽量的简单,只实现上述四条要求即可。不需要加载进度、加载失败的提示。
展开
 我来答
357368116
2014-02-13
知道答主
回答量:38
采纳率:0%
帮助的人:25.3万
展开全部
public class LoadSwfSource
{
private var ld:Loader;
private var url:String;
private var className:String;
private var x:int;
private var y:int;
private var stage:Stage;

public function LoadSwfSource(url:String , className:String , x:int , y:int , stage:Stage)
{
this.url = url;
this.className = className;
this.x = x;
this.y = y;
this.stage = stage;
init();
}
private function init():void
{
ld = new Loader();
ld.contentLoaderInfo.addEventListener(Event.COMPLETE,loadCompleted);
ld.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrHandler);
ld.contentLoaderInfo.addEventListener (SecurityErrorEvent.SECURITY_ERROR,securityErrHandler);
loadSWF():
}

private function loadSWF():void
{

var req:URLRequest = new URLRequest(url);
var context:LoaderContext = new LoaderContext(false,ApplicationDomain.currentDomain,null);
req.contentType = "";
ld.load(req,context);
}

private function show(className:String):void
{
var cls:Class = loadClassDefinition(className);
if(cls)
{
var o:DisplayObject = new cls();
stage.addChild(o);
o.x = x;
o.y = y;
}
}

private function loadCompleted(e:Event):void
{
trace("[" + e.target.url + "] loaded”);
show(className);
}

private function ioErrHandler(e:IOErrorEvent):void
{
trace(e.text);
}

private function securityErrHandler(e:IOErrorEvent):void
{
trace(e.text);
}

private function loadClassDefinition(sClassName:String):Class
{
var cls:Class = null;
try
{
cls = ld.contentLoaderInfo.applicationDomain.getDefinition(sClassName) as Class;
return cls;
}catch(e:Error){ throw new IllegalOperationError(sClassName + ” doesn’t exist”);}
return cls;
}
}

初略代码就是这样,试试吧。你可以写个更好的。
百度网友7588b36
2014-02-13 · TA获得超过2278个赞
知道大有可为答主
回答量:5095
采纳率:40%
帮助的人:1347万
展开全部
你只需要扩展一下loader类就能实现你要的这个类。
追问
我刚开始学习类的编程,对此知道的很少。能否将这个类完整的写出?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式