[索引页]
[源码下载]
[源码下载]
积少成多Flash(2) - ActionScript 3.0 基础之包、类、包外类、命名空间、属性、方法、接口和继承
作者:webabcd
介绍
Flash ActionScript 3.0 是一种面向对象的语言,包、类、包外类、命名空间、属性、方法、接口和继承
示例
FunctionTest.as
package actionScript
{
import flash.display.Sprite;
public class FunctionTest extends Sprite
{
public function FunctionTest()
{
}
// 减法
public function Subtract(a:int, b:int):int
{
// 参数总数
trace(arguments.length);
// output: 2
// 第一个参数
trace(arguments[0]);
// output: “参数 a 的值”
// 第二个参数
trace(arguments[1]);
// output: “参数 b 的值”
// 返回a - b
return a - b;
}
// 加法(args - 任意多参数)
public function Add(s:String, args):String
{
var i:int = 0;
// 枚举出 args 中的所有参数
for each(var v in args)
{
i += v;
}
return s + ": " + i;
}
}
}
{
import flash.display.Sprite;
public class FunctionTest extends Sprite
{
public function FunctionTest()
{
}
// 减法
public function Subtract(a:int, b:int):int
{
// 参数总数
trace(arguments.length);
// output: 2
// 第一个参数
trace(arguments[0]);
// output: “参数 a 的值”
// 第二个参数
trace(arguments[1]);
// output: “参数 b 的值”
// 返回a - b
return a - b;
}
// 加法(args - 任意多参数)
public function Add(s:String, args):String
{
var i:int = 0;
// 枚举出 args 中的所有参数
for each(var v in args)
{
i += v;
}
return s + ": " + i;
}
}
}
PropertyTest.as
package actionScript
{
import flash.display.Sprite;
public class PropertyTest extends Sprite
{
// 属性
public var nickname:String;
public var age:int;
private var _salary:int;
public function PropertyTest()
{
}
// getter方法
public function get salary():int
{
return this._salary;
}
// setter方法
public function set salary(s:int):void
{
this._salary = s;
}
}
}
{
import flash.display.Sprite;
public class PropertyTest extends Sprite
{
// 属性
public var nickname:String;
public var age:int;
private var _salary:int;
public function PropertyTest()
{
}
// getter方法
public function get salary():int
{
return this._salary;
}
// setter方法
public function set salary(s:int):void
{
this._salary = s;
}
}
}
StaticTest.as
package actionScript
{
import flash.display.Sprite;
public class StaticTest extends Sprite
{
// 静态属性
public static const nickname:String = "webabcd";
public static var age:int;
public function StaticTest()
{
}
// 静态方法
public static function hello(s:String):String
{
return "hello: " + s;
}
}
}
{
import flash.display.Sprite;
public class StaticTest extends Sprite
{
// 静态属性
public static const nickname:String = "webabcd";
public static var age:int;
public function StaticTest()
{
}
// 静态方法
public static function hello(s:String):String
{
return "hello: " + s;
}
}
}
ParentTest.as
package actionScript
{
import flash.display.Sprite;
public class ParentTest extends Sprite
{
public function ParentTest()
{
}
// ParentTest为基类,其内定义了一个名为hello()的方法
public function hello(s:String):String
{
return "hello: " + s;
}
}
}
{
import flash.display.Sprite;
public class ParentTest extends Sprite
{
public function ParentTest()
{
}
// ParentTest为基类,其内定义了一个名为hello()的方法
public function hello(s:String):String
{
return "hello: " + s;
}
}
}
ChildTest.as
package actionScript
{
import actionScript.ParentTest;
// ChildTest类继承自ParentTest类
// final代表禁止继承
public final class ChildTest extends ParentTest
{
public function ChildTest()
{
}
// 重写基类(ParentTest)中的hello()方法
public override function hello(s:String):String
{
// super为对基类的引用
return "基类的hello()方法 - " + super.hello(s) + ";子类重写后的hello()方法 - 您好: " + s;
}
}
}
{
import actionScript.ParentTest;
// ChildTest类继承自ParentTest类
// final代表禁止继承
public final class ChildTest extends ParentTest
{
public function ChildTest()
{
}
// 重写基类(ParentTest)中的hello()方法
public override function hello(s:String):String
{
// super为对基类的引用
return "基类的hello()方法 - " + super.hello(s) + ";子类重写后的hello()方法 - 您好: " + s;
}
}
}
china.as
package actionScript
{
// 定义一个名为china的命名空间
// 注:actionScript目录下必须要有名为china.as的文件
public namespace china;
}
{
// 定义一个名为china的命名空间
// 注:actionScript目录下必须要有名为china.as的文件
public namespace china;
}
usa.as
package actionScript
{
// 定义一个名为usa的命名空间
// 注:actionScript目录下必须要有名为usa.as的文件
public namespace usa;
}
{
// 定义一个名为usa的命名空间
// 注:actionScript目录下必须要有名为usa.as的文件
public namespace usa;
}
NamespaceTest.as
package actionScript
{
import flash.display.Sprite;
// 使用命名控件
use namespace china;
use namespace usa;
public class NamespaceTest extends Sprite
{
public function NamespaceTest()
{
}
// china命名空间的hello()方法
china function hello(s:String):String
{
return "您好: " + s;
}
// usa命名空间的hello()方法
usa function hello(s:String):String
{
return "hello: " + s;
}
}
}
{
import flash.display.Sprite;
// 使用命名控件
use namespace china;
use namespace usa;
public class NamespaceTest extends Sprite
{
public function NamespaceTest()
{
}
// china命名空间的hello()方法
china function hello(s:String):String
{
return "您好: " + s;
}
// usa命名空间的hello()方法
usa function hello(s:String):String
{
return "hello: " + s;
}
}
}
InterfaceTest.as
package actionScript
{
// 定义一个接口,该接口有一个方法
public interface InterfaceTest
{
function writeLog():String;
}
}
{
// 定义一个接口,该接口有一个方法
public interface InterfaceTest
{
function writeLog():String;
}
}
InterfaceTestA.as
package actionScript
{
// 实现InterfaceTest接口
// 在同一个包中,所以不需要import InterfaceTest
public class InterfaceTestA implements InterfaceTest
{
// 实现InterfaceTest接口的writeLog()方法
public function writeLog():String
{
return "记录日志到SQL Server数据库";
}
}
}
{
// 实现InterfaceTest接口
// 在同一个包中,所以不需要import InterfaceTest
public class InterfaceTestA implements InterfaceTest
{
// 实现InterfaceTest接口的writeLog()方法
public function writeLog():String
{
return "记录日志到SQL Server数据库";
}
}
}
InterfaceTestB.as
package actionScript