现在的位置: 首页 > 综合 > 正文

积少成多Flash(2) – ActionScript 3.0 基础之包、类、包外类、命名空间、属性、方法、接口和继承

2011年01月01日 ⁄ 综合 ⁄ 共 4102字 ⁄ 字号 评论关闭
[索引页]
[源码下载]

积少成多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;
        }

    }

}

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;
        }

    }

}

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;
        }

    }

}

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;
        }

    }

}

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;
        }

    }

}

china.as

package actionScript
{
    
// 定义一个名为china的命名空间
    // 注:actionScript目录下必须要有名为china.as的文件
    public namespace china;
}

usa.as

package actionScript
{
    
// 定义一个名为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;
        }

    }

}

InterfaceTest.as

package actionScript
{
    
// 定义一个接口,该接口有一个方法
    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数据库";
        }

    }

}

InterfaceTestB.as

package actionScript

抱歉!评论已关闭.