当前位置:首页 > Flash软件 > Flash软件工具 > Adobe flash cs3 ActionScript 3.0入门

Adobe flash cs3 ActionScript 3.0入门

2017-11-28来源:闪客帝国编辑:佚名标签:

文章导读
随着flash cs3的到来,同时提供给我们一个崭新的,针对Adobe Flash(swf)影片和功能程序的标准的程序开发语言。

随着flash cs3的到来,同时提供给我们一个崭新的,针对Adobe Flash(swf)影片和功能程序的标准的程序开发语言。在之前的一段时间里,你可能发现入门ActionScript 3.0与其它版本的ActionScript相比会有一些难度.例如,如果拿ActionScript 1.0到ActionScript 2.0的变化相比的话,那么对于ActionScript变化到ActionScript 3.0可以说是一个比较大的跳跃了。特别是那些倾向于在flash ide中编写代码程序员,这篇文章将帮助你如何在flash cs3 ide中工作。 

运行环境 
1.Flash CS3 
2.有一些ActionScript或是Javascirpt基础 
如果不使用CS3或是没有Flash CS3怎么办?你可以从这里学习使用免费的flex 2 sdk来学习ActionScript 3. Beginners Guide to Getting Started with ActionScript 3 (Without Learning Flex) 

索引 
1.历史简介 
2.ActionScript 3 基本的一些不同之处 
3.一般性内容 
a.Variables 变量 
b.Functions 函数 
c.Objects/Classes对象/类 
d.Events 事件 
4.ActionScript和时间线 
5.使用Display Objects. 

ActionScript历史简介 

早期的flash 3中的ActionScript 1.0语法冗长,主要的应用是围绕着帧的导航和鼠标的交互.这种状况一直保持到flash 5. 到flash 5版本时ActionScript已经很象JavaScript了。它提供了很强的功能和为变量的传输提供了点语法。ActionScript同时也变成了一种prototyped(原型)语言,允许类似于在javscript中的简单的oop功能。这些在随后的flash mx(6)版本中得到的增强。 
Flash MX2004(7)引入了ActionScript 2.0,它带来了两大改进:变量的类型检测和新的class类语法。ActionScript 2.0的变量类型会在编译时执行强制类型检测。它意味着当你在发布或是编译你的影片时任何指定了类型的变量都会从众多的代码中剥离出来,检查是否与你现有的代码存在矛盾冲突。如果在编译过程中没有发现冲突,那么你的swf将会被创建,没有任何不可理解变量类型的代码将会运行。尽管这个功能对于flash player的回放来说没有什么好处,但对于flash创作人员来它是一个非常的好工具,可以帮助调试更大更复杂的程序。 
在ActionScript 2.0中的新的class类语法用来在ActionSctipt 2.0中定义类。它类似于Java语言中的定义。尽管Flash仍不能超越它自身的原型来提供真正的class类,但新的语法提供了一种非常熟悉的风格来帮助用户从其它语言上迁移过来,提供了更多的方法来组织分离出来As文件和包。 

接下来我们进入到flash CS3(9;在flash8中没有发生多大的变化)ActionScript 3.这里我们不光有一个带有新的版本号的ActionScirpt 语言,还有一个全新的虚拟机即—Flash Player在回放时执行ActionScript的底层软件。ActionScript 1和ActionScript 2都使用是AVM1(ActionScript 虚拟机1),因此它们在需要回放时本质上是一样的,记得我们在ActionScript2上说过它增加了强制变量类型和新的类语法,它实际上在最终编译时变成了ActionScript 1,而ActionScript 3.0运行在AVM2上,一种新的专门针对ActionScirpt 3代码的虚拟机。基于上面的原因,ActionScript 3.0影片不能直接与ActionScript 1和ActionScript 2影片直接通讯(ActionScript 1和ActionScript 2的影片可以直接通讯,因为他们使用的是相同的虚拟机;如果要ActionScirpt 3影片与ActionScirpt 1和ActionScript 2的影片通讯,只能通过local connection),但是你会发现ActionScript 3的改变更深远更有意义。 
下面是各个版本的代码示范: 
ActionScript 1 
代码:

function Example(){ 
      this.num = 1;
}
Example.prototype.str = "text";
Example.prototype.doubleNum = function(){
      this.num *= 2;
}

ActionScript 2

代码:

class Example { 
      public var num:Number;
      private var str:String = "text";
      public function Example(){
            this.num = 1;
      }
      public function doubleNum():Void {
            this.num *= 2;
      }
}

注意当编译时,上面的ActionScript 2类会变成ActionScript 1范例那样。 
ActionScript 3

代码:

package { 
      public class Example {
            public var num:Number;
            protected var str:String = "text";
            public function Example(){
                  this.num = 1;
            }
            public function doubleNum():void {
                  this.num *= 2;    
            }
      }
}

ActionScript 3有怎样的不同呢? 

ActionScript 3是不同的,非常的不同。因为不同在实际应用上所以需要一个全新的虚拟机来运行它。但是本质上,它仍是ActionScript,作为ActionScript你可能 已经注意到了在ActionScript 1和ActionScript 2中的许多命令和程序概念仍然非常好的适用于ActionScript 3.0.尽管上面的范例代码非常小,我们至少可以看出语法已经改变了。在某些地方ActionScript 3.0与ActionScript 2.0代码看上去非常相似但并不总是这样,最终在As2.0与As3.0中直接转换经常会比较困难。 
这些改变是非常必要的,在印象中ActionScript 3.0有很高的功效,在开发过程中不仅是效率(这一点在一些小的但工作量较大的项目中得到证实)还有就是ActionScript 3.0在Flash Player中的回放速度要比ActionScript 2代码快10倍。好,你可能会发现在ActionScirpt 1和ActionScript 2中的许多并不复杂的任务在ActionScript 3.0中的代码长度会是原来的两倍长。但是最终你获得是它的高速和效率。对于那些经常使用代码的用户来说看到了希望,而对于高级的程序员来说将会高兴的跳起来。 
下面是一些ActionScript 3中的新特性: 
1.运行时排错—错误会运行时抛出以帮助你调试你的影片。 
2.运行时变量类型检测—在回放时会检测变量的类型是否合法。 
3.类封装—静态定义的类以增强性能。 
4.方法封装—方法现在与它们相关的类实例绑定因此在方法中的’this’将不会改变。 
5.E4X – 一个新的,更易于操作的xml 
6.正规表达式—支持本地化正规表达式。 
7.命名空间—不但在xml中支持命名空间而且在类的定义中也同样支持。 
8.int和uint数据类型—新的数据变量类型允许ActionScript使用更快的整型数据来进行计算。 
9.新的显示列表模式—一个新的,自由度较大的管理屏幕上显示对象的方法。 
10.新的事件类型模式—一个新的基于侦听器事件的模式 

在哪里输入Flash CS3代码 

当你在Flash CS3中使用ActionScript 3.0书写代码时,你可能正在时间线上书写代码。如果你并没有在时间线上书写代码,那么你可以将你的代码书写在外部类文件中(也就是说你不能将代码直接写在fla文件中,现在你使用的是哪种方式呢?),在ActionScript 1和ActionScript 2中,你可以在时间线上写代码,也可以在选中的对象如按钮或是影片剪辑上书写代码,代码加入在on()或是onClipEvent()代码块中以及一些相关的事件如press或是enterFrame.这些在ActionScript 3.0都不在可能了。代码只能被写在时间上,所有的事件如press和enterFrame现在都很同样要写在时间线上。

Figure: 试图想在选中的对象上输入代码时出现的提示,不能应用代码。 

变量 

变量是在代码中描述或是容纳不同值或数据的名称。当你在ActionScript 3.0中声明变量时,你需要使用var关键词。

代码:

var myVariableName; // 需要使用var

从flash5版本开始,var 关键词就已经可用了,但是在现在的ActionScript 3中它是必须的。例外的情况是在定义动态对象实例的变量数据时。

代码:

myDynamicObject.newVar = value; // 不需要var

在上面的例子中,newVar在myDynamicObject对象中新定义的一变量,没有使用var关键词。实际上,var 关键词从来不在复杂引用中应用,或是任意需要点语法的引用中,或是使用[]引用的变量。 
当定义一个变量时你必须使用数字,字符,$符号或下划线_来命名变量,你不能使用数字开头的名字来做为变量名称。如”bits32”,”_bits32”和"$bits32"都是合法的,“32bits”是不合法的因为它的名称之前使用了数字。 
你需要确认你所创建的变量名没有和你现有的代码中的变量和代码内部预置变量没有冲突。例如,当你在时间线上书写代码时,你正在定义一个影片剪辑的实例名称,如果你试图将其定义成与flash内置的变量MovieClip名称相同,你将会得到一个错误。

代码:

// 任意的时间代码 
var name:String = "Joe"; // 错误:与现有的内置变量名称冲突

同样,你不能在全局对象或是函数如Array,XML或是trace中使用。 
注意:从Flash Player 7之后,ActionScript 开始区分大小写,因些变量Name和name是不同的。 
ActionScript 3.0中还有一个新的地方是你只能在某一代码范围或是时间线代码上使用一次var,从另一个角度说,如你在一段代码的顶端声明了变量x,那么你不能在下面代码中的x变量使用var 关键词。

代码:

var x = value; // ok 



var x = differentValue; // 错误:你只能使用一次var关键词。

当在Flash的时间线上定义变量时,它会应用在整个时间线上,而不只是当前的帧。 
当使用var 关键词定义变量时,你可以为其指定变量类型,一个变量变量类型描述是它将存放的是哪种类型的数据。这个特性是从ActionScript 2.0开始的,一直继续到现在的ActionScript 3.0. 例如,如果你想让变量x是一个数值,那么你可以为它指定一个数值型如下。

代码:

var x:Number; // 变量x将用于承载数值型数据

在两个版本的ActionScript中,书写看上去是自由的,然而ActionScript 3 会在影片回放时保持书写信息的一些检查,不象在ActionScript 2.0中,在编译才会进行错误检查。这意味着你需要对你所使用的类型做出更多的判断,特别是你不能在ActionScript 3中针对一个变量使用两次var 关键词(而在ActionScript 2.0中将允许你针对同一变量使用不同的变量类型). 
对于根本没有类型的变量来说,在ActionScript 3.0中你可以为其指定任意类型。它提供了一个特殊的类型”untyped”类型,它描述的是---没有类型。它的呈现方式是(*). 
var anyValue:*; // 变量可以是任意的类型 
为变量指定类型是个好的习惯,因为它可以引导更好的进行错误检查。在使用untyped类型时,你可以在指定为untyped类型加下一些说明,以便在其它人看代码时不至于去猜测。 
如果你没有为一个变理提供一个默认的值,它将被系统默认的根据所设置的类型指定一个数值。如果没有设置变量类型,它将被指定一个undefined做为数值。下面列表中列出了在ActionScript 3.0不同的数据数据类型的默认值。

代码:

var untyped:*; // (or no typing) undefined 

var boolean:Boolean; // false

var number:Number; // NaN

var integer:int; // 0

var unsignedInteger:uint; // 0

var string:String; // null

var object:Object; // null

任何对象类型的默认值都是null.需要注意的object类型(任何对象包括arrays 和我们自定义类的对象)的默认值都是null,而不是undefinded。实际上在ActionScript中对象不能是undefined。如果他们没有值,那么他们就是空null。只有类型为untyped的变量或偿试访问的变量不存在时才会得一个undefined值。 
Number类型现在有了一个唯一值,而不在是undefined或是null了。如果他们没有值,那么他们的值为NaN(“不是一个数值“)。NaN是一个比较巧妙的值,然而,你不能真正的拿一个NaN与另一个NaN去比较因为他们可能并不一样。如果你需要检查一个数值是否为NaN,你需要使用isNaN语法。

代码:

if (isNaN(myNumber))  //检查myNumber是否已定义.

Int和uint变量类型是ActionScript 3中新增的类型。它们是用来指定描述32位整形或整数的。Int类型是一个标准的整型,uint是一个未标记的整型,或不为负值的整数。这些数值只能是整数值,他们不能为空null,undefined,或是NaN。你可能已经注意到这两种类型的写法为int和uint,他们的第一个字母并没有大写,这意味着他们并不是特定指定给对象或是与类关联的类型,相反,这些类型本质上与Number类型共享(在MIN_VALUE和MAX_VALUE中的应用) 
还有另外一个类型也没有首字母大写,这就是void类型,在ActionScript 2.0中它的首字母是大写的,但是在ActionScript 3中它的首字母不在大写了,类似于int和uint,并没有特殊的定义与其相关联。这种类型通常用于指定给函数。 

[未完待续.....]

 

留言跟帖
热门文章
日榜 周榜
1 夜狼直播有福利吗,夜狼直播在哪里下载

夜狼直播是目前直播平台上非常火爆的一款直播软件了,这款直播软件体积不大但是功能十分全面,小编想说只要是你想看的想知道的功能你都会在这款直播软件里面发现,非常带感。...

2 夜狼直播app有破解版吗,夜狼直播app破解版下载地址

夜狼直播算是目前整个网络上最好玩最嗨的直播平台了,这款直播软件里面的小姐姐们都非常会玩,分分钟引爆你的肾上腺,现在有非常多的朋友们都在寻找这类直播的下载地址,小编现在就...

3 直播音效辅助软件在哪里下载,直播辅助音效软件下载地址分享

现在随着直播平台的门槛越来越低,越来越多的朋友们也加入了这个新型行业当期了主播。在直播过程中就需要制造各种各样的梗来吸引观众。...

4 虎牙直播有自动发弹幕软件吗,虎牙直播助手下载

现在直播平台是如雨后春笋一般,一批接着一批的涌现,越来越多的人都参与到直播这个行业中来了,为了方便主播更加专心的直播,也是推出了一系列的直播辅助软件...

5 全民TV彩色弹幕怎么弄,全民tv彩色弹幕工具在哪下载

喜欢看直播的同学们想必对于全民TV这个直播平台一点都不陌生吧,这款平台也是在网上与斗鱼TV,熊猫TV,虎牙TV一样火爆的直播平台,在线观看人数非常多,里面的弹幕也是刷的飞起,还有各种炫酷的彩色弹幕,非常亮眼。...

6 一键卸妆app在哪下载,make app安卓和苹果版下载地址分享

现在的黑科技app可以说是越来越多了,现在在应用商城里面有一款非常火爆的卸妆app,名叫make app,其功能就是能够把你已经化过妆的照片给一键去掉妆容,当然如果你天生丽质它也是会脑残的给你毁图。一键卸妆app在哪下载,小编给大家带来make app安卓和苹果版下载地址分享...

7 梦蝶APP是什么 梦蝶直播APP下载地址

如今,越来越多的直播APP出现在大众眼前。然而普遍的都是一些户外直播,游戏直播还有就是娱乐直播。而梦蝶直播APP是一款与众不同的直播软件。...

8 阿狸直播TV版在哪下载 阿狸直播app下载地址 阿狸直播apk下载

近几年来,随着直播的兴起,大大小小的平台都开始做起了直播软件。阿狸直播其实是以一种类似电视盒子的一款APP,在曾经广电封杀电子盒子中竟然还能坚挺至今也是一个奇迹。...

9 狗仔直播去广告版本在哪下载 狗仔直播最新纯净版下载地址分享

相信很多朋友看到直播两个字点进来都以为是个黄播吧,其实并不是这样,这款狗仔直播还是非常好用的直播平台,也可以称为是聚合直播平台,就像捞月狗那样,下载一个直播可以看多个直播平台的内容,还是非常好用的。狗仔直播去广告版本在哪下载,小编为大家带来狗仔直播最新纯净版下载地址分享...

10 思瑞vip视频全集在哪观看 网红女神思瑞vip磁力 女神思瑞VIP视频链接

小编最近在逛论坛的时候发现非常非常多的网友都在求索思瑞vip视频全集,小编其实根本不了解这个人是谁,后来在各大论坛底朝天的寻找了一番,还真的发现了不少好玩的地方。思瑞vip视频全集在哪观看,小编就为大家带来网红女神思瑞vip磁力,女神思瑞VIP视频链接。...

1 夜狼直播有福利吗,夜狼直播在哪里下载

夜狼直播是目前直播平台上非常火爆的一款直播软件了,这款直播软件体积不大但是功能十分全面,小编想说只要是你想看的想知道的功能你都会在这款直播软件里面发现,非常带感。...

2 夜狼直播app有破解版吗,夜狼直播app破解版下载地址

夜狼直播算是目前整个网络上最好玩最嗨的直播平台了,这款直播软件里面的小姐姐们都非常会玩,分分钟引爆你的肾上腺,现在有非常多的朋友们都在寻找这类直播的下载地址,小编现在就...

3 直播音效辅助软件在哪里下载,直播辅助音效软件下载地址分享

现在随着直播平台的门槛越来越低,越来越多的朋友们也加入了这个新型行业当期了主播。在直播过程中就需要制造各种各样的梗来吸引观众。...

4 虎牙直播有自动发弹幕软件吗,虎牙直播助手下载

现在直播平台是如雨后春笋一般,一批接着一批的涌现,越来越多的人都参与到直播这个行业中来了,为了方便主播更加专心的直播,也是推出了一系列的直播辅助软件...

5 全民TV彩色弹幕怎么弄,全民tv彩色弹幕工具在哪下载

喜欢看直播的同学们想必对于全民TV这个直播平台一点都不陌生吧,这款平台也是在网上与斗鱼TV,熊猫TV,虎牙TV一样火爆的直播平台,在线观看人数非常多,里面的弹幕也是刷的飞起,还有各种炫酷的彩色弹幕,非常亮眼。...

6 一键卸妆app在哪下载,make app安卓和苹果版下载地址分享

现在的黑科技app可以说是越来越多了,现在在应用商城里面有一款非常火爆的卸妆app,名叫make app,其功能就是能够把你已经化过妆的照片给一键去掉妆容,当然如果你天生丽质它也是会脑残的给你毁图。一键卸妆app在哪下载,小编给大家带来make app安卓和苹果版下载地址分享...

7 梦蝶APP是什么 梦蝶直播APP下载地址

如今,越来越多的直播APP出现在大众眼前。然而普遍的都是一些户外直播,游戏直播还有就是娱乐直播。而梦蝶直播APP是一款与众不同的直播软件。...

8 阿狸直播TV版在哪下载 阿狸直播app下载地址 阿狸直播apk下载

近几年来,随着直播的兴起,大大小小的平台都开始做起了直播软件。阿狸直播其实是以一种类似电视盒子的一款APP,在曾经广电封杀电子盒子中竟然还能坚挺至今也是一个奇迹。...

9 狗仔直播去广告版本在哪下载 狗仔直播最新纯净版下载地址分享

相信很多朋友看到直播两个字点进来都以为是个黄播吧,其实并不是这样,这款狗仔直播还是非常好用的直播平台,也可以称为是聚合直播平台,就像捞月狗那样,下载一个直播可以看多个直播平台的内容,还是非常好用的。狗仔直播去广告版本在哪下载,小编为大家带来狗仔直播最新纯净版下载地址分享...

10 思瑞vip视频全集在哪观看 网红女神思瑞vip磁力 女神思瑞VIP视频链接

小编最近在逛论坛的时候发现非常非常多的网友都在求索思瑞vip视频全集,小编其实根本不了解这个人是谁,后来在各大论坛底朝天的寻找了一番,还真的发现了不少好玩的地方。思瑞vip视频全集在哪观看,小编就为大家带来网红女神思瑞vip磁力,女神思瑞VIP视频链接。...

关于闪客帝国 | 联系方式 | 发展历程 | 闪客技术帮助 | 广告联系 | 网站地图

备案号:京ICP备05065306号 技术支持:闪客帝国