仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 545|回复: 7
打印 上一主题 下一主题

[学习教程] 来讲讲:Flash AS3教程:ClassLoader类-Flash actionscript

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 21:04:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这个播放器非常小,只需花一点点时间下载,对于在体验网页上的多媒体效果是个很好的开始。
后面先容了FlashAS3教程:Dot类,接着先容ClassLoader类!
次要用处
1、在用flash做项目标时分,把一些元件,经由过程设置链接类,然后利用这个类,经由过程getClass办法便可把这个素材拿上去


(详见例1)

2、将很多很多的类分库到分歧的swf中,然后经由过程挪用swf,到达挪用类库的功效,然后经由过程getClass来猎取类(详见例2)
index.base.net.ClassLoader类解说:
加载swf文件,而且经由过程挪用getClass猎取类,也能够猎取定名空间大概函数的界说
机关函数
publicfunctionClassLoader(obj:Object=null,lc:LoaderContext=null)
参数1能够是字符串,能够是ByteArray,假如为前者则接纳load办法,后者接纳loadBytes办法
参数2是创立带有指定LoaderContext工具的ClassLoader实例,LoaderContext能够设置是不是加载跨域文件,使用程序域等,详见官方LoaderContext类解说!
load办法
publicfunctionload(_url:String,lc:LoaderContext=null):void
加载文件
参数1是加载地点,参数2见机关函数
loadBytes办法
publicfunctionloadBytes(bytes:ByteArray,lc:LoaderContext=null):void
加载字节文件
参数1是字节数据,参数2见机关函数
getClass办法
publicfunctiongetClass(className:String):Object
猎取一个大众界说,能够是类,也能够是定名空间大概函数界说
参数1是猎取class的完全包加类名,好比我们的这个类完全界说称号是index.base.net.ClassLoader
详见例子
hasClass办法
publicfunctionhasClass(className:String):Boolean
前往是不是含有该大众界说
参数1见getClass办法
clear办法
publicfunctionclear():void
清空
url属性
publicvarurl:String
猎取url属性
loader属性
publicvarloader:Loader
猎取loader属性


例子1:



这是一个假造人物抽象的举措包,个中包括了8种分歧的举措
在利用ClassLoader加载这个swf的举措包后,便可利用getClass来挪用这些素材,并且能够反复的new这些元件,来到达屡次反复利用
importindex.base.net.ClassLoader;
varcl:ClassLoader=newClassLoader;
cl.load("main.swf");
cl.addEventListener(Event.COMPLETE,fun);
functionfun(e:Event){
vartmp=cl.getClass("drag");
addChild(newtmp);
}
例子2:
将设我有一个类库,有这么三个类
然后把它编译成swf
我们别的建一个文件,来加载这个所谓的类库
importindex.base.net.ClassLoader;
varcl:ClassLoader=newClassLoader;
cl.load("main.swf");
cl.addEventListener(Event.COMPLETE,fun);
functionfun(e:Event){
vartmp1=cl.getClass("index.base.net.ByteLoader");
trace(tmp1)

vartmp2=cl.getClass("index.base.net.ClassLoader");
trace(tmp2)

vartmp3=cl.getClass("index.base.geom.Dot");
trace(tmp3)
}
/**
*trace的了局:
*[classByteLoader]
*[classClassLoader]
*[classDot]
*/
我们的目标就到达了!
接上去是源代码!
packageindex.base.net{

importflash.display.Loader;
importflash.net.URLRequest;
importflash.utils.ByteArray;
importflash.events.Event;
importflash.events.ProgressEvent;
importflash.events.EventDispatcher;
importflash.system.LoaderContext;

publicclassClassLoaderextendsEventDispatcher{

publicvarurl:String;
publicvarloader:Loader;

//机关函数
publicfunctionClassLoader(obj:Object=null,lc:LoaderContext=null){
if(obj!=null){
if(objisByteArray){
loadBytes(objasByteArray,lc);
}elseif(objisString){
load(objasString,lc);
}else{
thrownewError("参数毛病,机关函数第一参数只承受ByteArray或String");
}
}
}

//加载
publicfunctionload(_url:String,lc:LoaderContext=null):void{
url=_url;
loader=newLoader;
loader.load(newURLRequest(url),lc);
addEvent();
}

//加载字节
publicfunctionloadBytes(bytes:ByteArray,lc:LoaderContext=null):void{
loader=newLoader;
loader.loadBytes(bytes,lc);
addEvent();
}

//入手下手侦听
privatefunctionaddEvent():void{
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressFun);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeFun);
}

//停止侦听
privatefunctiondelEvent():void{
loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,progressFun);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeFun);
}

//加载乐成,公布乐成事务
privatefunctioncompleteFun(e:Event):void{
delEvent();
dispatchEvent(e);
}

//加载历程
privatefunctionprogressFun(e:ProgressEvent):void{
dispatchEvent(e);
}

//猎取界说
publicfunctiongetClass(className:String):Object{
returnloader.contentLoaderInfo.applicationDomain.getDefinition(className);
}

//是不是含有该界说
publicfunctionhasClass(className:String):Boolean{
returnloader.contentLoaderInfo.applicationDomain.hasDefinition(className);
}

//扫除
publicfunctionclear():void{
loader.unload();
loader=null;
}
}
}

不是MX版本升级到MX2004时的那么简单,而是实现了新的飞跃。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-17 15:31:39 | 只看该作者
专业的建筑动画、产品动画、角色动画、flash动画、游戏美工等全方位服务的创意动漫公司。十年专业的动漫制作经验,为政府、企业等制作出无数优秀的创意动画设计产品。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-24 12:22:19 | 只看该作者
flash 有这么多的优势,那么它的优缺点和设计方面的关系是什么?
透明 该用户已被删除
地板
发表于 2015-2-7 08:47:12 | 只看该作者
缺点也必然会会有的,但是不同的产品有不同的缺点吧,比如说flash建站它的速度会比较慢。
只想知道 该用户已被删除
5#
发表于 2015-2-21 20:00:44 | 只看该作者
单纯的做动画而言,flash动画与传统动画有很多差别,这里会为你介绍什么是flash与flash与传统动画相比具有的优点和缺点,而进一步了解flash动画
简单生活 该用户已被删除
6#
发表于 2015-3-6 23:46:47 | 只看该作者
逐渐改变了我们生活及生活习惯的一些东西,而正是互联网的大势兴起,Flash动画越来越受到宠爱,现在,Flash动画已成为网络广告的中坚力量。
变相怪杰 该用户已被删除
7#
发表于 2015-3-13 23:42:31 | 只看该作者
矢量图形相对于位图的另一个优势是可以随意缩放的能力。这是对动画进程的奖赏,对用户来说也是一个很酷的特征。在Flash之前,Web上没有这种功能。
若相依 该用户已被删除
8#
发表于 2015-3-21 00:00:38 | 只看该作者
没有安装FLASH插件的前提下,无法正常显示广告效果。根据调查显示,有3%的互联网用户没有安装shockwave Flash。虽然比例不大,但不能因为这样一个简单的原因而拒绝这些用户。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 16:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表