• 我学Flash/Flex(1):Action Script3.0基础知识


    前言

    最近一直在做Silverlight开发,因为技术的相关性,开始学习Flex/Flash。Silverlight需要掌握C#;同样,我们学习使用Flex/Flash,就需要了解跟它相关的语言——Action Script。本人是从Action Script3.0入门的,本文通过AS3与C#的对比来说明AS3的一些最基本的知识。(纯属个人见解)

    一、类与文件

    AS3中的类文件必须是.as文件。注意点:

    1.一个文件中只能定义一个类,且类名必须要和文件名一致。

    2.类是定义在Package中。跟C#中一个cs文件中可以定义多个类的要求较为严格。(个人觉得这样更好,从源头就要你规范。)

    3.一个类最多只能有一个构造函数。

    二、Package与NameSpace

     NameSpace:

      .NET Framework 使用命名空间(namespace)来组织它的众多类,使用namespace关键字可声明命名空间。在较大的编程项目中,声明自己的命名空间可以帮助控制类名称和方法名称的范围.使用using关键字引入需要的namespace,namespace也可以有自己的别名。

    Package:

      Package(包),通namespace相似,主要用于组织管理类,使用关键字import引入。但是,包是根据类所在的目录路径所构成的,并可以嵌套多层。包名所指的是一个真正存在的文件夹,用 “.”进行分隔。

    例:

    1 //定义包HelloFlex
    2 package HelloFlex{
    3 public class Person {
    4 //...
    5 }
    6 }
    7 //引入包
    8 import HelloFlex.Person;

    三、继承(Inheritance)、接口(Interface)

     同C#不支持多重继承一样,AS3也不支持多重继承,但是可以实现多个接口。继承的语法和java相似:

     1 package HelloFlex
    2 {
    3 public class Outman extends Person
    4 {
    5 public function Outman(obj:Object)
    6 {
    7 super(obj);
    8 }
    9 }
    10 }

    接口定义与实现:

     1 package HelloFlex
    2 {
    3 public interface ISuperAction
    4 {
    5 function Fly():void;
    6 }
    7 }
    8
    9
    10
    11 package HelloFlex
    12 {
    13 public class Outman extends Person implements ISuperAction
    14 {
    15
    16 public function Outman(obj:Object)
    17 {
    18 super(obj);
    19 this._name = "Outman";
    20 }
    21
    22 private var _name:String;
    23
    24 public override function get Name():String{
    25 return this._name;
    26 }
    27
    28 public function Eat():void{
    29 //...TODO
    30 }
    31
    32 //public function Eat(food:String):void{ error
    33 //...TODO
    34 //}
    35
    36 public function Fly():void{
    37 //...
    38 }
    39 }
    40 }

    四、变量/属性定义 

    C#中变量和属性定义分别为:

    1         private string _name = string.Empty;
    2
    3 public string Name
    4 {
    5 get { return _name; }
    6 set { _name = value; }
    7 }

    但是在AS3中变量和属性的定义语法(Person.as):

    1 private var _name:String;
    2
    3 public function set Name(name:String):void{
    4 this._name = name;
    5 }
    6
    7 public function get Name():String{
    8 return this._name;
    9 }

    五、方法定义、overload,override

    AS3.0中是不支持重载(overload)的。支持override(Outman.as):

    1 private var _name:String;
    2
    3 public override function get Name():String{
    4 return this._name;
    5 }

    六、动态语言

    C#4.0以后开始支持动态语言,提供了dynamic关键字。AS3.0作为一个符合ECMA规范的脚本语言,也是支持动态语言的。我们再定义一个类Xman:

     1 package HelloFlex
    2 {
    3 public dynamic class Xman extends Person
    4 {
    5 public function Xman(obj:Object)
    6 {
    7 super(obj);
    8 }
    9 }
    10 }

    使用:

    1 var xman:Xman = new Xman({name:"xman"});
    2 xman.Age = 10;
    3 trace(xman.Name +":"+xman.Age);


    刚刚学习Flex/Flash,大致的总结。

  • 相关阅读:
    学习 | mockjs入门
    学习 | 基于require.js的三级联动菜单【入门】
    Android_百度地图基本用法5
    Android_百度地图基本用法4
    Android_百度地图基本用法3
    Android_百度地图基本用法2
    Android_百度地图基本用法1
    Android_Event Bus 的基本用法
    Kotlin基础-扩展
    Kotlin基础-泛型
  • 原文地址:https://www.cnblogs.com/pszw/p/2357802.html
Copyright © 2020-2023  润新知