ActionScript3.0基础教程

时间:2017-04-22 11:44:41 AS3.0高级教程 我要投稿

ActionScript3.0基础教程

  要使用ActionScript3.0,就要好好学习它的基础教程。下面是阳光网小编给大家整理的ActionScript3.0基础教程,供大家参阅!

  ActionScript3.0基础教程:使用函数和方法

  as中的函数和方法在极大程度上是相同。都是只有在调用它们的时候才会执行其包含的功能。与变量一样,函数也只需写(或声明)一次,之后可以多次调用(或重用)。

  3.1 方法与函数

  函数的概念:执行特定任务并可以在程序中重用的代码块。

  方法与函数的区别是方法与一个特定的类关联(类的对象可以执行的任务),函数是用户定义在时间轴上的代码块,或自定义类的一部分的(也变成了那个自定义类的方法)。

  3.1.1 方法

  方法是写在类中的函数。当对象需要去执行计算,改变一个属性,返回一个值,或执行任何事先预定的动作时,它们就准备好被调回了。

  方法继承

  类的方法可以从其他类继承,在类之间创建了逻辑链,从而最小化了功能的重复。同时削减了文件大小和重复的功能也是提高效率的体现。

  每个外部as文件都定义了一个类所消耗的文件大小和CPU资源。

  3.1.2 函数

  函数是用户为了把一个应用程序的所有功能“缝合”在一起,而定义的代码容器。

  面向对象编程需要使用很多事先定义好的只维护自身的对象。你需要做的就是在你需要的时候给他们传递指令使他们执行某些任务。换句话说,函数就是为解决某些需要而封装的指令集。

  3.1.3 定义函数

  1.function functionName(参数1,参数2,…){

  //函数执行的动作

  }

  2.var 函数名:Function=function(参数1,参数2,…){

  //执行语句块

  }

  函数的命名规则与变量的命名规则是一样的。

  3.1.4 使用函数的参数

  方法或函数调用时他们都可以接受传递进来的参数值。

  3.2 从函数中返回值

  函数既可以接受参数值,也可以给予反馈。函数的一个实际好处是可以重用一般功能的代码。

  设置函数的返回值

  创建的函数有返回值是,as允许严格的函数返回值类型。

  不给返回类型函数返回任何值,只要将void作为函数的返回类型。

  好的习惯是给你的函数一个返回类型,无论他们是否真的返回值。

  Exam:

  var js:number;

  function init(cs:Number){return cs=1;}

  trace(init(js));//1

  嵌套函数:function dj():String{

  function dy():String{return "Hello"}

  return dy()

  }

  3.3 函数作用域

  作用域在as中表示变量或对象的位置和所有关系。变量或对象在哪创建就可以在哪访问,这就是它的作用域或位置。在代码主要部分声明的变量(时间轴上),就是时间轴变量,作用域在时间轴代码上。本地变量是指在函数中创建的变量,它的作用域只在他的函数里。

  对于函数来说,无论函数里发生什么,就让它留在函数里吧。

  在as中要时常注意在哪放东西。在代码中编译错误和功能没有执行作用域问题可能是最大的'原因。

  想访问和修改全局作用域中变量的值,只要在函数中调用它,并给他赋予一个新值就可以了。前提是函数中没有一个和他同名的变量。

  var sum:Number=50;

  function addNumber(pNum1:Number,pNum2:Number):void{

  sum=pNum1+pNum2;

  }

  addNumber(10,10);

  ActionScript3.0基础教程:使用类和对象

  在as中任何东西都是对象

  4.1 定义类和对象

  类相当于对象的蓝图。定义了该对象的所有内容:看似如何,行为如何,做什么,处理什么数据以及如何创建。

  对象是类的实例,或者是对象蓝图的副本。在类的对象被实例化后,就可以按照你的意愿访问它的公用属性,事件和方法来操作对象了。

  类的层次涉及对类的划分。类其实是一些定义对象外部的as文件。

  导入一个具体的类,必须知道他在目录或者说类包的路径。

  如import flash.display.MovieClip;

  类的继承 一般情况下,包中深层的子类继承父类的核心功能。

  4.2 导入类

  在构造对象之前必须导入类。在将类导入到代码之后,就可以直接使用类名了。如果没有导入,引用类必须使用包含路径的完整类名。

  var mc:MovieClip=new flash.display.MovieClip();

  PS:所有基于时间轴编写的代码可以不用导入类(Flash会自动完成)

  4.3 实例化对象

  实例化一个对象是指用as构造一个类的实例作为对象。不管对象是用来显示还是管理数据,实例化的方式总是一样的:var objectName:ClassType=new ClassType();

  4.3.1 对象方法

  方法是定义在类中的函数。类的方法就是对象执行的行为。可以传递参数、返回值。方法需要在类的对象实例化后调用。

  4.3.2 对象属性

  属性是实例的变量。他们保存了对象物理上、逻辑上的特性,比如位置(x、y)、尺寸(width、height、scaleX,scaleY)以及幕后使用到的各种值。

  4.3.3 对象实例的数据类型

  与变量一样,对象实例的变量也有数据类型。若实例化错对象类型,也将会导致编译错误。

  定义的对象实例数据类型总是要和类名一致。

  4.4 使用外部代码

  使用外部文件,然后将其加入或者导入到应用程序中,有很多好处。

  可以在flash和编辑器(使用一个独立的as编辑器)之间做一些分离,所有的代码能同时显示在不同的地方。

  当多位开发者面对同一个程序的不同之处时是一个不错的选择。

  体会基于类编程的第一步

  很多开发者不喜欢flash中的as面板,更喜欢第三方as编辑器。

  第三方as编辑器:FlashDevelop(www.flashdevelop.org)

  primalscript(www.primalscript.com):多语言编辑器

  TextMate(www.macromates.com),只能用于苹果机

  Eclipse 一个开源的开发平台

  工作于外部的as文件时,你写的代码和在flash中基于帧的完全一样。唯一的不同就是as是在一个外部的.as文件中。在flash文件被编译时,外部的.as文件被加入到flash中。加入一个外部的.as

  文件到flash应用程序中和创建一个外部类不是一回事。

  添加外部的.as文件,使用include

  ActionScript3.0基础教程:显示列表和对象

  flash平台应用程序主要用于显示图形和信息。as的底层处理了如何存储图形信息以及如何显示他们。as3.0是flash显示可视对象的方式。可视对象或显示对象通过显示列表添加到舞台上(可视的)。显示列表管理着显示对象的层级,并且显示对象本身也是可见元素。这种方法在编程中称为显示编程。

  5.1 显示列表

  DisplayList像一个树形结构将显示对象放置在舞台上。也可以用as在运行时将对象添加到显示列表中。在创建第一个程序时,stage就是主容器,在主容器中的所有显示对象都会被显示。随后,任何在该舞台上的显示对象都有能力作为容器让其他对象有他们自己的显示列表,来管理他们的子显示对象。

  显示对象在显示列表中的位置决定了他们的位置。显示对象是基于一个以添加顺序为层级的堆顺序,堆顺序或显示对象的深度定义了他们应该出现在上边还是当重叠时显示在另一个可视对象的下边。

  5.2 显示类和对象

  可以使用as在运行时创建显示对象,或者在创作时添加到舞台上。无论哪种方法,他们都是派生于DisplayObject,InteractiveObject或DisplayObjectContainer类。

  5.2.1 显示对象

  DisplayObject类被用来定义只做显示目的的显示对象(没有交互和时间轴)。DisplayObject类定义了所有其他显示对象的核心功能。这个类也可称为父类。编程术语中父类的意思是有其他类是派生于这个类的。

  DisplayObject类的属性,事件和方法

  属性 x y widht height scaleX scaleY alpha filters mask

  方法 hitTestObject() globalToLocal() getBounds() getRect()

  事件 addedToStage enterFrame removedFromStage

  所有可视对象的核心都是DisplayObject。DisplayObject类可以看做显示对象演变链上的第一"dna纽带"。

  所有DisplayObject类的子类继承了DisplayObject类中定义的功能。继承类的意思是出于某些目的使用父类作为基础并自定义类添加其他功能。

  DisplayObject类的子类

  Bitmap 处理外部加载或由as创建的位图图像

  Shape 创建矢量图像,以及使用数学函数和as的复杂形状

  InteractiveObject 为对象定义交互的功能

  Video 用于显示视频文件

  StaticText 只可以用于处理在创建时使用文本工具创建的文本。不可以使用as创建和操作。但还是有类驱动的

  MorphShape 只可以在运行时创建形状时创建过渡

  5.2.2 交互对象

  InteractiveObject类继承了DisplayObject父类

  InteractiveObject类是所有可以用户交互的核心类,包括键盘输入和鼠标交互。

  InteractiveObject类的属性,事件和方法

  属性 contextMenu mouseEnabled doubleClickEnabled

  方法 Interactive()

  事件 click keyDown keyup mouseDown mouseOver mouseOut mouseUp mouseWheel rollOver

  InteractiveObject的子类

  DisplayObjectContainer 定义一个拥有用于嵌套对象的显示列表对象。

  SimpleButton 程序中所有按钮的实例

  TextField 使用as控制和操作的输出和输入文本

  PS:让链接标识符和库元件同名是个很好的习惯。这样可以在库中很容易找到对象,当使用as控制它的时候只要看库中现实的名字就可以了。

  在将对象添加到显示列表前设置对象的属性是一个很好的习惯。这样可以确保对象在应用程序中显示之前已经做好准备了。

  5.2.3 显示对象容器

  DisplayObjectContainer类继承了InteractiveObject类和它的DisplayOBjectL父类

  DisplayObjectContainer类定义了作为其他对象容器的对象。这些对象构成了容器,将所有对象包含在他们自己的显示列表层级中。

  DisplayObjectContainer类的属性、方法和事件

  属性 mouseChildren numChildren tabChildren textSnapshot

  方法 addChild() getChildAt() removeChild() swapChildren()

  事件 added addedToStage enterFrame removed removedFromStage render

  DisplayObjectContainer类的子类

  Loader 加载外部SWF和图像(JPG,PNG,GIF)

  Sprite 将图形作为子对象包含

  Stage 用于显示对象的整个画布

  5.2.4 MovieClip类

  MovieClip类继承Sprite和DisplayObjectContainer类

  MovieClip类和Sprite类相同,只是MovieClip类多了一个可以做逐帧效果或功能的时间轴(或播放头)

  所有DisplayObjectContainer类的子类都想舞台一样有他们自己的显示列表。

  

【ActionScript3.0基础教程】相关文章:

1.Flash ActionScript3.0简介

2.ActionScript3.0自学教程

3.ActionScript3.0有什么优点

4.ActionScript3.0新增功能介绍

5.ActionScript3.0开发流程详解

6.ActionScript3.0实用教程

7.★Flash ActionScript3.0运算符

8.Flash ActionScript3.0高级教程全集