Flash AS3.0菜鸟学飞教程:创建自定义类

2016-01-29 12:16 121 1 收藏

Flash AS3.0菜鸟学飞教程:创建自定义类,本例为Flash AS 3.0菜鸟学飞系列教程,在本文中我们将学习创建自定义类的一些知识,在ActionScript 3 中,类是最基本的编程结构,所以必须先掌握编写类的基础知识。

【 tulaoshi.com - Flash 】

本文由 中国 cao4811 原创,转载请保留此信息!

本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请点击这里,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临! 

在学习中遇到问题请到 论坛 发贴交流!

 

在ActionScript 3 中,类是最基本的编程结构,所以必须先掌握编写类的基础知识。所有的类都必须放在.as文件中,每个as文件里只能定义一个public 类,而且类名要与文件名相同。比如:你的类名为Example ,那么文件名必须为Example.as。

在ActionScript 3.0 中所有的类都必须放在包中。包是对类进行分类的单位,其意义相当于文件系统的目录。包路径相对于classpath(类路径), 默认的类路径就是项目的根目录,因此顶级的包目录就是项目根目录。包声明如下:

package name {
}

如果类定义在顶级包中,那么包名可以不指定,如:
package {
}

当类文件保存在子目录,那么包名就是它的保存目录,例如,文件保存在example目录,那么包这样声明:

package example {
}

如果类文件保存在example 目录的子目录subpackage, 应这样声明:

package example.subpackage {
}

包是很重要的,它可以避免类名称空间冲突。例如,有两个开发者写了两个类文件都叫MessageManager. 这两个类虽有相同名字,但是完成不同的任务,因此你不能把这两个类放在一起,如果这样做,编译器将不知道调用哪个,一个办法是取个唯一的类名字。

你可以取名字叫EmailManager 和BinarySocket- MessageManager, 这是可以的,但是如果你管理成千上万的类这时就很困难了。因此用包可以很好的解决这个问题,即使你有很多相同的类名,只要它们不在同一个包就不会冲突,如把MessageManager 放在net.messaging.email 包另一个放net.messaging.binarysocket 包中。

一般取包名都以自己的网站域名,这样可以最大限度避免和别人的包名相冲突。

当有多个项目公用一些类,那么这些类直接被放在主包中的子目录中。例如,上面的MessageManager 类放在com.examplecorp.net.messaging.email 和com.examplecorp.net.messaging.binary- socket 包中。

下一步就是声明类自身:
public class Name {
}

类声明必须在包内。下面的代码在顶级包中定义了叫Example 的类:
package {
public class Example {
}
}

类主体在括号内定义,包括属性,方法。属性就是和类关联的变量,使用var关键字声明他们,属性也有修饰符指定其范围。修饰符有:
private

该属性只有类实例自身可访问.
public

该属性可以被任何类实例访问(若直接被类访问可设置成static)
protected

该属性只被自身类实例或派生类实例访问。
internal

该属性可被包内的类实例访问。

默认情况下是属性被指定为internal ,除非自己指定修饰符。大多数情况,属性被指定为private或protected。按照习惯约定,private 和protected 声明的属性名称都在前面加上下划线。

看下面的例子:
package {
public class Example {
private var _id:String;
}
}

与类关联的还有方法,你可以使用function关键字像声明函数那样声明方法。和属性一样,方法也有修饰符(public, private, protected, internal)。如果方法被类实例访问可设置为public(直接被类访问则加上static).如果方法只在类内方法则被设置为private 或protected。下面的代码声明一个方法叫getId( ):

package {
public class Example {
private var _id:String;
public function getId( ):String {
return _id;
}
}
}

按照约定,方法名称的起始字符必须为小写。每个类都有个和自己类名相同的方法,该方法称为构造函数,用它为创建新的实例时进行初始化工作。在ActionScript 3.0 中,所有的构造函数都是public ,构造函数不能有返回值,也不能声明有返回类型。下面的代码声明了构造函数:
package {
public class Example {
private var _id:String;
public function Example( ) {
_id = "Example Class";
}
public function getId( ):String {
return _id;
}
}
}

[next]

下面我们编写一个Ball类来感受一下,类的创建、保存及路径的设置:

1、 在本地硬盘E:下新建一名为fbook的目录,在fbook目录下新建class目录。

2、打开Flash,新建一个ActionScript 文件,保存在E: fbookclass 下,文件名为"Ball.as"。在as文件中输入代码:
package {
import flash.display.Sprite;
public class Ball extends Sprite {
private var radius:Number;
private var color:uint;
public function Ball(radius:Number=40,color:uint=0xff0000) {
this.radius=radius;
this.color=color;
init();
}
public function init():void {
graphics.beginFill(color);
graphics.drawCircle(0,0,radius);
graphics.endFill();
}
}
}
/*当这个类被实例化后,就能绘制出一个圆。可以自行给出半径(radius) 和颜色(color)。如果不给参数

就会使用默认参数:半径为40,颜色为红色。*/

3、新建一个fla文件,保存在任意目录下,文件名任意。选【编辑】菜单下的首选参数 -- 类别 -- ActionScript -- ActionScript 3.0 设置 打开类路径设置面板 -- 单击面板上部的加号就可以添加新的目录路径作为类路径。路径可以手工填写,也可以点面板上部的瞄准器浏览到路径添加,点确定,这样路径就
设置好了。(如果.as文件和fla文件放在同一目录中不必设置类路径)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

Flash AS3.0菜鸟学飞教程:创建自定义类_中国

4、在属性面板的文档类:填入Ball,没有引号,按Ctrl+Enter组合键测试。

Flash AS3.0菜鸟学飞教程:创建自定义类_中国

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

来源:http://www.tulaoshi.com/n/20160129/1485360.html

延伸阅读
标签: flash教程
本文由 中国 cao4811 原创,转载请保留此信息! 本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!  在学习中遇到问题请到 论坛 发贴交流!   AS3.0 类的编写 (不使用库元件) 在上一讲中我们使用...
标签: flash教程
本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!  本例为Flash AS3.0菜鸟学飞系列教程,在上一节中我们初步了解和认识了“函数”的引用,在本Flash AS3.0教程中我们来学习函数之返回语句,希望能给朋友们带来帮...
标签: flash教程
本文由 中国 cao4811 原创,转载请保留此信息! 本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!  在学习中遇到问题请到 论坛 发贴交流! 本例为Flash AS3.0菜鸟学飞系列教程,在上一讲中我们学习了含有多个类...
标签: flash教程
我们已经了解了在Flash CS3 中如何在时间轴上编写代码,那么如何将时间轴上的代码转换为外部类,以及Flash CS3 的文档类形式,接下来我们进一步的来研究编写类及外部as文件的方式。 include 如果你了解AS1.0,AS2.0 编程,那么对include一定不陌生,在Actionscript 3.0中我们仍可以使用include 来导入代码。 例: 1、打开flash新建...
标签: flash教程
本文由 中国 cao4811 原创,转载请保留此信息! 本系列Flash教程由中国Flash互助课堂专为Flash新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老师对练习进行点评与指导,欢迎朋友们的光临!  在学习中遇到问题请到 论坛 发贴交流! 更多AS 3.0教程: http://www.jcwcn.com/portal-topic-topicid-2....

经验教程

835

收藏

13
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部