论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

用反射动态创建实例

文章类别:Flash | 发表日期:2009-6-16 15:19:52

用反射动态创建实例

使用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”的值改为其他类型时,创建的实例也就属于其他类型。用同样的方法把库中的图片导出来,步骤同上,看代码:

//保存链接名 
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素材库,根据库中的链接名可以动态导出素材。

视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058