Flash AS3.0菜鸟学飞教程:用反射动态创建实例,本例为Flash AS 3.0菜鸟学飞系列教程,在本文中我们将学习用反射动态创建实例,使用new运算符创建对象或实例时,直接调用了某个具体类的构造函数,而在编写程序时,经常需要动态地创建类的实例,这时可以使用反射来创建实例。
【 tulaoshi.com - Flash 】
本文由 中国 cao4811 原创,转载请保留此信息!
本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请点击这里,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!
在学习中遇到问题请到 论坛 发贴交流!
更多AS 3.0教程:http://www.jcwcn.com/portal-topic-topicid-2.html
用反射动态创建实例
使用new运算符创建对象或实例时,直接调用了某个具体类的构造函数,而在编写程序时,经常需要动态地创建类的实例,这时可以使用反射来创建实例。
例如,如果仅知道某个实例,而不知道实例对应的类,就可以用反射来创建实例。AS3中的所有类都属于Class类型,例如,MovieClip是一个Class,Bitmap也是一个Class。
例:
1、新建一个Flash文档
2、单击图层第一帧,打开动作面板,输入代码:
//动态得到类的构造函数
var classcontructor:Class = MovieClip;
//创建相关类的实例
var mc:MovieClip = new classcontructor();
mc.graphics.beginFill(0xff9900,100);
mc.graphics.drawRect(0,0,100,100);
addChild(mc);
3、测试影片,可看到绘制的矩形图。
上面的代码并没有直接用MovieClip类来创建实例,而是先把MovieClip类保存在一个数据类型为Class的变量 classcontructor中,再通过classcontructor来创建实例。当classcontructor的值改为其他类型时,创建的实例也就属于其他类型。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)用同样的方法把库中的图片导出来,步骤同上,看代码:
//保存链接名
var linkname:String = "BigPhoto";
//得到类信息
var cla:Class = getDefinitionByName(linkname);
//创建类的实例
var bitmapdata:BitmapData = new cla(50,50);
var img:Bitmap = new Bitmap(bitmapdata);
addChild(img);
测试影片,可看到从库中导出的图片。(测试此代码请选择【文件】【发布设置】Flahs选项卡,ActionScript 版本(A)点设置,把严谨模式的勾去掉,点确定。)
用上面的原理,可以根据链接名来从库中动态导出图片,深入下去,可制作swf素材库,根据库中的链接名可以动态导出素材。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)对本文感兴趣的朋友可以到这里与作者交流:http://bbs.jcwcn.com/viewthread.php?tid=241547
来源:http://www.tulaoshi.com/n/20160129/1485468.html
看过《Flash AS3.0菜鸟学飞教程:用反射动态创建实例》的人还看了以下文章 更多>>