




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
生成第一个应用程序在本章中,我们开始写第一行的代码。 刚进入oop的程序员可以从本章对oop的简单介绍开始。 熟悉oop后,可以跳过此段落继续学习Papervision3D中的3D场景。 明确后,可以开始第一项基本工程。一些工程封装在默认类中,以后将使用这些类本章包括以下内容:介绍l类和面向对象的编程熟悉l文档类/主程序文件l Papervision3D的3D组织基础l建立你的第一个项目准备l本实例类和面向对象编程介绍本文重点使用Papervision3D类库。 写入要在Flash、FlexBuilder和Flash Builder中使用的类。 如果你是FlashIDE的开发者,这是你第一次写自己的班级。 面向对象编程是本书的重要部分,本书作简单介绍。 如果熟悉Flex、Flash的oop编程,可以直接读取本章的Papervision3D中的3D基本场景。即使你是面向对象的初学者也不用太担心。 本书只用于面向对象的基础。 如果您学会使用PaperVision3D进行面向对象的编程,您可能会更熟悉类并对面向对象的编程感兴趣。什么是班级? 事实上,他们只是将一些函数(方法)和变量(属性)组合到单独的文件中,这称为类的定义。 一个类是创建新对象的设计听起来有点模糊吗? 其实你一直在用班。 从FlashAPI创建的所有对象都基于类。 例如,您可能正在使用Sprite、MovieClip和TextField等对象。 事实上,这些都是班级。 这些对象的设计和类位于Flash中。 首先,使用FlashAPI创建Sprite对象:varmysprite : sprite=new sprite () :你熟悉吗? 通过它们,我们创建了一个名为mySprite的Sprite类对象。 这被称为类的实例。 嵌入式类与自定义类不太相同。 Papervision3D是自定义类的集合。 第一章介绍如何在Papervision3D中实例化DisplayObject3D类var my对象3 d :显示对象3 d=newdisplayobject3d ();如果知道了班级的使用方法,就可以做自己的班级创建自定义类ActionScript类是以计算机上的. as结尾的文本文件,它包含ActionScript脚本代码。 这些代码是上述对象的设计。 让我们看看设计的样子:package 灬.公共类example类装模作样publicvarmyname :字符串= Paul ;公共函数延伸类别()装模作样以下称为publicfunctionreturnmyname () :字符串装模作样return My name is myName;以下称为以下称为以下称为第一行是包语句,后跟左大括号( )和类下方的右大括号( )。 软件包表示存储类文件的目录。 假设您创建了一个名为myPackage的目录,并在其中存储了FLA或源文件。 要访问此目录及其中的类,必须按目录名称定义包,如下面的:所示package myPackage 是.以下称为子目录的行为也是如此。 现在,假设在myPackage目录下有一个名为subPackage的子目录。 您必须以这种方式定义子目录subPackage:package myPackage.subPackage ;是.以下称为如果您没有创建用于组织类的目录,则可以使用默认软件包来代替相应的软件包名称(即,不写软件包名称)在书的所有示例中使用默认软件包。 事实上,为了避免名称冲突,必须使用软件包来组织许多类在包定义之后,可以看到类定义,看起来像:公共类example类装模作样是.以下称为类的名称必须与类文件的名称匹配。在此示例中,类文件必须存在于ExampleClass.as .事实上,软件包是一种很好的类文件组织方法,可以为项目中的每个类指定唯一的名称。 可以避免名字冲突class前面有公共。 这是一个关键字,表示项目中的所有代码都可以访问此类。 该关键字称为访问控制符类的名称用于实例化类。 以这种方式实例化类:varclassexample : example class=newexampleclass () :类中定义的变量称为类属性,类属性的数量不受限制。 每个类属性都有一个访问控制符。 此示例中的访问控制元素是公共的,并且指示所有类都可读写:varclassexample : example class=newexampleclass () :classExample.myName=Jeff ;这样就创建了类example类的实例。 可以将属性myName从Paul更改为Jeff。 如果属性声明为public,请这样做。 要使属性仅在类中可用,必须将属性更改为private:privatevarmyname :字符串= Paul ;在这种情况下,执行前的代码会发生编译时错误现在,让我们看看类名为ExampleClass的方法方法名称与类名称相同的方法称为构造函数(构造函数)。公共函数延伸类别()装模作样以下称为构造函数的所有访问控制符都是公共的,并且在每次实例化类时自动调用。 这意味着构造函数中的代码将自动执行类中的所有其他函数称为方法publicfunctionreturnmyname () :字符串装模作样return My name is myName;以下称为定义方法后,可以看到冒号跟随数据类型。 这是定义方法返回值的数据类型。 也可以在Flash时间轴中定义方法,但不是必需的。 returnMyName ()方法定义返回值是字符串。 如果不返回值,则可以将void用作返回类型:publicfunctionreturnnothing () : void装模作样/donotreturnsome以下称为只需定义常规方法的返回类型,构造函数就没有返回值类、其属性和方法使用访问控制符来确定对象的访问权限。 迄今为止,已经看到了表示在任何地方都可以访问的关键词public。 必须注意,使用公共可能会导致类混乱。 您可以使用private关键字避免private只允许在类中访问属性或方法。 其馀两个常见的访问控制符表示internal和ernal可以在同一包中访问。 protected表示属性或方法只能从子类访问。 子类是oop继承的一部分,因此稍微说明一下除非属性或方法准备在类外进行访问,否则优选设置为私有.每次定义属性或方法时,必须确定是否在类外进行访问.继承您可能想要创建类,但是此类与现有类非常相似。 我只是想添加新的方法。 您可以复制现有类并将其粘贴到新类中以添加新方法。 但是,其效率非常低。 在这种情况下,有一个继承武器的地方。继承是扩展现有类(称为父类或基类)的技术,从父类继承的类称为子类,子类可以访问父类中的所有未公开属性和方法。例如,假设你用密码制造汽车和摩托车。 两个班,可以直接写汽车和摩托车。 但你很快就会发现这两个类的方法和属性几乎是重复的。 例如,两个人都可以驾驶,属性:车轮数和速度。 在抽象的方法中,这些属性和方法都是重复的。 因为汽车和摩托车是车辆创建父级:车辆可以通过汽车和摩托车继承车辆来避免重复代码如果需要,子类可以定义自己的属性和方法,而不是父类:一辆汽车有四个车轮,可以反方向驾驶摩托车有两个车轮,不能反方向驾驶现在让我们看看继承是如何在两个简单的类中完成的:package 灬.公共类基础类别装模作样publicfunctiondosomething () : void装模作样trace(im正在做某事 );以下称为以下称为以下称为package 灬.publclasssubclassextendbasicclass装模作样publicfunctionsaysomething () : void装模作样trace(imsaying什么 );以下称为以下称为以下称为第一个类是父类,只有一个方法。 实例化BasicClass并直接调用方法varbasicclass :基本类=newbasicclass ()basicClass.doSomething () :没有什么特别的。 您可以看到从SubClass定义继承了BasicClass。 可以使用BBS IC类的属性和方法。 让我们看看:var子类:子类=新子类()subclass.do什么();subClass.saySomething () :subClass调用了从BasicClass继承的dosome ()方法不仅可以继承自定义类,还可以继承嵌入类。 让我们看一下创建Sprite的子类:package 灬.import flash.display.Sprite;publicscleentedextentpritityextendonsbtendsprite,publicscleentedextent装模作样以下称为以下称为注意此:应添加在包声明下import flash.display.Sprite;要继承当前软件包中不存在的类,必须声明部署。 引入相关的包和类。 在此范例中,Sprite类别是从套件flash.display引入的继承是创建新类的方式,基于现有类。 对不对?这使你的代码清晰、精致。 但是,如果想要更改父类中已经存在的方法? 如果想要完全脱离现有类的代码,直接变更父类是不可能的,同时也不是好方法。 如果使用第三方类库(如Papervision3D ),则无法想象要对其进行更改。 直接更改类后更新类库的版本将导致代码无效。幸运的是,面向对象的编程提供了解决办法。 让我们看看如何在子类中修改basic类的dosome ()方法package 灬.publclasssubclassextendbasicclass装模作样overridepublicfunctiondosome () : void装模作样trace(Hi,你需要什么 );以下称为publicfunctionsaysomething () : void装模作样trace(imsaying什么 );以下称为以下称为以下称为我们在子类中添加dosome ()方法。 但是,必须明确说明此方法是父类的同名方法。 子类仍然可以调用父类方法overridepublicfunctiondosome () : void装模作样trace(Hi,你需要什么 );super.do什么();以下称为在SubClass中调用dosome ()方法时,将输出:我需要一些东西im在做什么这里简单地介绍了最基本的面向对象。 这应该能够理解一些基本的面向对象的书籍,读面向对象的书籍,如果你想知道更多的话,就有很多面向对象的在线书籍使用文档类和主应用程序文件文档类仅适用于Flash IDE,主应用程序文件仅适用于FlexBuilder或FlashBuilder文档类是一个特殊类,只包含一个构造函数,在加载SWF文件时调用该构造函数。 文档类构造函数也可以说是您程序的入口。 文档类必须是Sprite、MovieClip或其子类为了简单起见,本书只使用文件而不主要使用文件,他们的名字不同,但作用相同FlexBuilder和FlashBuilder检索
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外摄影教学活动策划方案
- 园林雾森系统施工方案
- 天津一汽营销方案策划
- 投标申请书仪器信息网
- 大坝防护工程施工方案
- 宁夏财务咨询方案
- 2025年教师资格证考试教育教学知识与能力专项训练试卷
- 特定行业合同模板的使用指南
- 2025工会基础知识考试题库(+答案解析)
- 2026湖北专升本城乡规划专业备考指南
- 人工智能+高质量发展文化旅游产业智能化升级研究报告
- 2025年自考专业(计算机网络)考试综合练习附参考答案详解(A卷)
- 冷链技术对水果品质保持的数值预测模型研究
- 集输工应急处置考核试卷及答案
- 2025年全国保密教育线上培训考试试题库附完整答案(必刷)
- 珠江医院护理面试题库及答案
- 流程管理某省市场营销MPR+LTC流程规划方案
- 2025年江苏省农垦集团有限公司招聘笔试备考及答案详解(新)
- 2025年济南市中考英语试题卷(含答案及解析)
- 2025年人教版一年级下册数学口算题卡(1000题)
- 化工厂实习安全培训课件
评论
0/150
提交评论