您的位置: 首页 > 技术文档 > 多媒体制作 > ActionScript权威指南——部分
Flash Com Actionscript 介绍 回到列表 Flash MX UI 组件的初级应用
 ActionScript权威指南——部分

作者:alvinlee 时间: 2003-07-04 文档类型:翻译 来自:蓝色理想

第 1 页 变量(1)- 概述
第 2 页 变量(2)- 创建变量
第 3 页 变量(3)- 变量赋值
第 4 页 变量(4)- 变量值的改变和取回
第 5 页 变量(5)- 变量值的类型
第 6 页 变量(6)- 变量的作用域
第 7 页 变量(7)- 在不同的时间轴上访问变量
第 8 页 变量(8)- 电影剪辑变量的生存期
第 9 页 变量(9)- 局部变量
第 10 页 有关变量的一些实例
第 11 页 数据和数据类型(1) - 数据对信息
第 12 页 数据和数据类型(2) - 用数据类型来保留意义
第 13 页 数据和数据类型(3) - 创建并分类数据
第 14 页 数据和数据类型(4) - 数据类型转换

第三节 创建并分类数据
有两种方式可以在ActionScript中创建新数据,这两种方法都需要使用表达式,即我们在脚本中表述数据的代码片语。Alvin注:有关表达式的概念在各种计算机语言的书籍中都有介绍,尽管各自措辞不同,但是基本都有一个确定的共识,那就是表达式是可以对其求值的任何语句。比如:变量hello本身就是一个表达式,对该表达式求值的结果就是hello中所包含的数据值;而数字2345也是一个表达式,该表达式的值就是数字2345本身。

字面表达式(简称为字面,很多计算机书籍中都称其为字面常量)是一系列的字母、数字,以及作为数据的标点符号。数据字面的表现形式是程序源文件中的数据的逐字表示法。它与变量对比 —— 上一章中介绍过 —— 变量仅是包含数据的容器。每种数据类型都定义了其自己的字面创建规则。下面是一些字面的例子:
    "loading...please wait"    // a string literal
    1.51    // a number literal
    ["jane", "jonathan"]    // an array literal

请注意,电影剪辑无法用字面表述,但是可以通过实例名被引用。

我们也能够利用某个复合表达式程序化地产生数据。复合表达式以代码片语的形式表述数据,该代码片语必须能被计算求值,而非仅是逐字的表达。例如,下列这些复合表达式都以产生一个单数据为结果:
    1999 + 1;    // yield the datum 2000
    "hi " + "ma!"    // yield the datum "hi ma!"
    firstName    // yield the value of the variable firstName
    _currentframe    // yield the frame number of the playhead's current position
    new Date ()    // yield a new Date object with the current date and time

注意上述所列的例子中,个体的字面表达式,比如1999和1,可以成为复杂的表达式的有效组成部分,比如1999 + 1。

无论我们使用字面表达式还是复合表达式来创建数据,都必须将我们想要在以后使用的每个数据加以存储。举例说明:表达式"hi " + "ma!"的值将会丢失,除非你存储它,比如说,存于一个变量中。如:
    // this datum is fleeting, and dies immediately after it's created
    "hi " +"ma!";

    // this datum is stored in a variable and can be
    // accessed later via the variable's name
    var welcomeMessage = "hi " + "ma!";

我们如何将数据分类到适当的类型中?也就是说,我们怎样将某个数据指定为数字、字符串、数组,或其他的什么类型?在大多数情况下,不需要我们亲自分类新数据;ActionScript解释器会自动地指派或推断出每个数据的类型 —— 这当然是基于一套内部规则。

1.自动定义字面的类型
通过检查某个字面数据的语法,解释器可以推断出它的类型。如同下列代码片段的注释中所解释的那样:
    "animal"    // quotation marks identify "animal" as a string
    1.35    // if it contains only integers and a decimal, it is a number
    true    // special keyword true identifies this as a boolean
    null    // special keyword null identifies this as a null type
    undefined    // special keyword undefined identifies the undefined type

    ["hello", 2, true]    // square brackets and values separated by commas indicate that this is an array
    {x: 234, y: 456}    // curly braces and property name/value pairs separated by commas indicate that this is an object

如你所见,对数据字面使用正确的语法是极其重要的。不正确的语法会引起错误的发生或者导致对数据内容的曲解。如例:
    animal    // missing quotes -- animal is interpreted as a variable, not a string of text
    "1.35"    // numbers in quotes are treated as strings, not numbers
    1. 35    // space before the 3 causes an error
    "animal    // missing closing quotation mark causes an error

2.自动定义复合表达式的类型
解释器计算表达式的值以便确定其数据类型。考虑下面的例子:
    pointerX = _xmouse;

因为_xmouse将鼠标指针的位置以数字形式存储,表达式_xmouse的类型总是数字型,因此,变量pointX也成为数字型。

数据类型被解释器自动地确定 —— 通常,这符合我们的要求和期望。但是,某些意义暧昧的事例需要我们理解一些规则;而这些规则被解释器用来确定某个表达式的数据类型。考虑下面的表达式:
    "1" + 2;

加号左边的操作数是一个字符串("1"),而右边的操作数是一个数字(2)。加号操作符作用于所有的数字(加法)和字符串(串联)。那么表达式"1" + 2的值到底是数字3还是字符串"12"?为了明确这些模糊之处,解释器依赖于一个固定的规则:加号操作符(+)对字符串的支持总是处于数字之前。所以,该表达式求值的结果是字符串"12"而不是数字3。这个是一个专横的规则,但是它提供了一种解释代码的协调的方式。你应当记住作为加号操作符的典型用法的该规则被启用于:当有一个操作数是字符串时。该规则适用于连接操作数,而非数字的相加,如下例所示:
    trace ("the value of x is: " + x);

连接类型迥异的数据或在某个上下文关系中使用一个与期待的数据类型不匹配的数据会产生暧昧的语义。这迫使解释器根据专断却可预知结果的规则进行自动的数据类型转换。让我们考察一些发生自动转换的事例,以及一片数据从一种类型转换为另一种类型的预期结果是什么。

to be continue...
alvin

出处:蓝色理想
责任编辑:无意

上一页 数据和数据类型(2) - 用数据类型来保留意义 下一页 数据和数据类型(4) - 数据类型转换

◎进入论坛Flash专栏版块参加讨论

相关文章 更多相关链接
Flash Paper 2
FLASH缓冲滚动升级版本
ActionScript 最新加密方法
AS2.0精彩特效之位图的飘动
ActionScript 2.0字典CHM版
作者文章
ActionScript权威指南——部分
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:13/141个记录/页 转到 页 共14个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2