`
gogomarine
  • 浏览: 99680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ActionScript3 跟着官方文档走 - 入门学习笔记(一)

    博客分类:
  • flex
阅读更多

每次,任何一种新语言学习,都得从基础开始。

 

  • 编程基础
    1. 变量和常量
      在ActionScript中,创建一个变量,使用var语句:
      var age:Number;

      也可以立即初始化:
      var age:Number = 23;
    2. 数据类型
      2.1 String:        字符串类型,跟Java一样
      2.2 Numeric       一共三中numeric类型
           2.2.1 Number: 任何数值,包括 有小数部分或者没有小数部分的值
           2.2.2 Int:       整数(不带小数部分的整数)
           2.2.3 Uint:      不能为负数的整数
      2.3 Boolean:     boolean
    3. 对象
      ActionScript中,任何类都有三中类型的特征:
      1. 属性
      2. 方法
      3. 事件
    4. 属性 跟 方法跟Java类似
    5. 函数

      function eventResponse(eventObject:EventType):void
      {
      // 此处是为响应事件而执行的动作。
      }
      eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);

      “函数”提供一种将若干个动作组合在一起、用类似于快捷名称的单个名称来执行这些动作的
      方法。函数与方法完全相同,只是不必与特定类关联(事实上,方法可以被定义为与特定类关
      联的函数) 。在创建事件处理函数时,必须选择函数名称 (本例中为 eventResponse) ,还必
      须指定一个参数(本例中的名称为 eventObject) 。指定函数参数类似于声明变量,所以还必
      须指明参数的数据类型。将为每个事件定义一个 ActionScript 类,并且为函数参数指定的数据
      类型始终是与要响应的特定事件关联的类。最后,在左大括号与右大括号之间 ({ ...}),编写您
      希望计算机在事件发生时执行的指令。

      一旦编写了事件处理函数,就需要通知事件源对象(发生事件的对象,如按钮)您希望在该
      事件发生时调用函数。可通过调用该对象的 addEventListener() 方法来实现此目的(所有
      具有事件的对象都同时具有 addEventListener() 方法)。addEventListener() 方法有两
      个参数:
      ■ 第一个参数是您希望响应的特定事件的名称。同样,每个事件都与一个特定类关联,而
      该类将为每个事件预定义一个特殊值;类似于事件自己的唯一名称 (应将其用于第一个
      参数) 。
      ■ 第二个参数是事件响应函数的名称。请注意,如果将函数名称作为参数进行传递,则在
      写入函数名称时不使用括号。
    6. 创建对象实例

      借助几个 ActionScript 数据类型,可以使用“文本表达式” (直接写入
      ActionScript 代码的值)创建一个实例。一些示例:
         ■ 文本数字值 (直接输入数字) :
         var someNumber:Number = 17.239;
         var someNegativeInteger:int = -53;
         var someUint:uint = 22;
         ■ 文本字符串值 (用双引号将本文引起来) :
         var firstName:String = "George";
         var soliloquy:String = "To be or not to be, that is the question...";
         ■ 文本布尔值 (使用字面值 true 或 false):
         var niceWeather:Boolean = true;
         var playingOutside:Boolean = false;
         ■ 文本 XML 值 (直接输入 XML) :
         var employee:XML = <employee>
           <firstName>Harold</firstName>
           <lastName>Webster</lastName>
         </employee>;

      ActionScript 还为 Array、RegExp、Object 和 Function 数据类型定义了文本表达式。
      对于其它任何数据类型而言,要创建一个对象实例,应将 new 运算符与类名一起使用,如下
      所示:
         var raceCar:MovieClip = new MovieClip();
         var birthday:Date = new Date(2006, 7, 9);
    7.  运算符
      ActionScript中的运算符 (==)  ,跟Java不一样,Java是看两个对象内存地址是否相同,而这个是
      看值是否相等,跟Java的 Object#equals(Object obj)差不多。计算结果是Boolean.
      if (dayOfWeek == "Wednesday")
      {
           foo();
      }

      主要运算符
      主要运算符包括那些用来创建 Array 和 Object 字面值、对表达式进行分组、调用函数、实
      例化类实例以及访问属性的运算符。 
      下表列出了所有主要运算符,它们具有相同的优先级。属于 E4X 规范的运算符用 (E4X) 来
      表示。
       
      []                   初始化数组
      {x:y}             初始化对象
      ()                   对表达式进行分组
      f(x)                调用函数
      new               调用构造函数
      x.y x[y]          访问属性
      <></>           初始化 XMLList 对象 (E4X)
      @                   访问属性 (E4X)
      ::                    限定名称 (E4X)
      ..                    访问子级 XML 元素 (E4X)
       
  • ActionScript 开发过程

    无论 ActionScript 项目是大还是小,遵循一个过程来设计和开发应用程序都有助于您提高
    工作效率。下面几个步骤说明了构建使用 ActionScript 3.0 的应用程序的基本开发过程:
        
    1.  设计应用程序。
           您应先以某种方式描述应用程序,然后再开始构建该应用程序。
         
    2.  编写 ActionScript 3.0 代码。
           您可以使用 Flash、 Flex Builder、 Dreamweaver 或文本编辑器来创建 ActionScript 代码。 
          
    3.  创建 Flash 或 Flex 应用程序文件来运行代码。 
           在 Flash 创作工具中,此步骤包括:创建新的 FLA 文件、设置发布设置、向应用程序添加
          用户界面组件以及引用 ActionScript 代码。在 Flex 开发环境中,创建新的应用程序文件
          涉及:定义该应用程序并使用 MXML 来添加用户界面组件以及引用 ActionScript 代码

  • 命名空间 
      1. 第一,必须使用 namespace 关键字来定义命名空间。
        例如,下面的代码定义 version1 命名空间:
            namespace version1;
      2. 第二,在属性或方法声明中,使用命名空间(而非访问控制说明符)来应用命名空间。
        下面的示例将一个名为 myFunction() 的函数放在 version1 命名空间中:
            version1 function myFunction() {
         
            }
      3. 第三,在应用了该命名空间后,可以使用 use 指令引用它,也可以使用该命名空间来
        限定标识符的名称。下面的示例通过 use 指令来引用 myFunction() 函数:
        use namespace version1;
        myFunction();
        您还可以使用限定名称来引用 myFunction() 函数,如下面的示例所示:
        version1::myFunction();
    • 使用命名空间时,应遵循以下三个基本步骤:
    • 在应用命名空间时,应切记以下几点:
      1. 对于每个声明只能应用一个命名空间。
      2. 不能一次将同一个命名空间属性应用于多个定义。换言之,如果您希望将自己的命名空
        间应用于 10 个不同的函数,则必须将该命名空间作为属性分别添加到这 10 个函数的定
        义中。 
      3. 如果您应用了命名空间,则不能同时指定访问控制说明符,因为命名空间和访问控制说
        明符是互斥的。换言之,如果应用了命名空间,就不能将函数或属性声明为 public、
        private、protected 或 internal。

 

 

 

 

 

 

 

  • 动态类
“动态”类定义在运行时可通过添加 /更改属性和方法来改变的对象。非动态类 (如 String
类)是 “密封”类。您不能在运行时向密封类中添加属性或方法。  
在声明类时,可以通过使用 dynamic 属性来创建动态类。例如,下面的代码创建一个名为
Protean 的动态类:  
dynamic class Protean
{
private var privateGreeting:String = "hi";
public var publicGreeting:String = "hello";
function Protean()
{
trace("Protean instance created");
}
}
如果要在以后实例化 Protean 类的实例,则可以在类定义的外部向该类中添加属性或方法。
例如,下面的代码创建 Protean 类的一个实例,并向该实例中添加两个名称分别为 aString
和 aNumber 的属性:
var myProtean:Protean = new Protean();
myProtean.aString = "testing";
myProtean.aNumber = 3;
trace(myProtean.aString, myProtean.aNumber); // 测试 3
添加到动态类实例中的属性是运行时实体,因此会在运行时完成所有类型检查。不能向以这
种方式添加的属性中添加类型注释。
您还可以定义一个函数并将该函数附加到 myProtean 实例的某个属性,从而向 myProtean
实例中添加方法。下面的代码将 trace 语句移到一个名为 traceProtean() 的方法中:
var myProtean:Protean = new Protean();
myProtean.aString = "testing";
myProtean.aNumber = 3;
myProtean.traceProtean = function ()
{
trace(this.aString, this.aNumber);
};
myProtean.traceProtean(); // 测试 3
但是,以这种方式创建的方法对于 Protean 类的任何私有属性或方法都不具有访问权限。而
且,即使对 Protean 类的公共属性或方法的引用也必须用 this 关键字或类名进行限定。下面
的示例说明了 traceProtean() 方法,该方法尝试访问 Protean 类的私有变量和公共变量。  
myProtean.traceProtean = function ()
{
trace(myProtean.privateGreeting); // undefined
trace(myProtean.publicGreeting); // hello
};
myProtean.traceProtean();

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics