请帮忙制作一个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:代码请尽量的简单,只实现上述四条要求即可。不需要加载进度、加载失败的提示。 展开
实现下述功能
载入外部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:代码请尽量的简单,只实现上述四条要求即可。不需要加载进度、加载失败的提示。 展开
2个回答
展开全部
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;
}
}
初略代码就是这样,试试吧。你可以写个更好的。
{
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;
}
}
初略代码就是这样,试试吧。你可以写个更好的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询