通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>网络媒体>>flash>>正文 新版上线![旧版]
注:打开慢时请稍等

as变量 5. 变量值的类型

http://www.iyit.net  日期:2006-5-27 13:20:09  来源:网络转载   点击:
参加讨论
我们在actionscript编程过程中所使用的数据有多种类型。迄今为止,我们已经看到过数字型和文本型,而诸如布尔、数组、函数,和对象等类型我们也将很快接触到。在我们触及每种数据类型的细节之前,先讨论一些与变量的使用密切相关的数据类型问题。
1.自动定义类型
在actionscript中,任何变量都可以包含任何类型的数据。这看起来不值得注意,但是,某个变量中可以包含任何类型的数据的能力实际上是很不寻常的。象c++和java这样严谨的编程语言使用既定义类型的变量;也就是说每个变量只能接受一种既定类型的数据,而此种类型必须在变量声明时明确指定。actionscript变量是自动定义类型的变量 —— 当我们为某个变量赋值时,解释器为我们设置该变量的数据类型。

actionscript变量不仅能包含任何数据类型,而且它们可以动态地改变数据类型。如果我们为某个变量赋一个新值,而该值与该变量原有值的类型不同,则该变量自动地被重新定义类型。综上所述,下面的代码在actionscript中是合法的:
x = 1; // x is a number
x = "micheal"; // x is now a string
x = [4, 6, "hello"]; // x is now an array
x = 2; // x is a number again
在c++和java这样的编程语言中,自动地重新定义类型是不被支持的,类型不匹配的数据将被转换为变量现有的数据类型(或者会导致错误的发生 —— 如果该转换无法完成),而转换后的数据我们认为是不确定的(无法控制的)。在接下来的部分中我们将考虑自动定义类型和动态转换类型的一些重要概念。

2.自动的值转换
在某些环境中,actionscript期待某种特定类型的数据。如果我们使用某个变量而该变量的数据值与期待的类型并不匹配,那么解释器会尝试转换该数据。例如,我们在需要数字的地方使用文本变量,为了适应当前的作业,解释器将试图转换该变量的文本值为某个数字值。在下面的例子中,z被设置为2。为什么?因为减号运算符(或称操作符,这两种说法并无明显区别,我将根据上下文关系来决定使用恰当的称呼)期待的是一个数字,所以变量y的值从字符串“4”转变为数字4,然后被6(x的值)减,产生结果2。
x = 6; // x is a number, 6
y = "4"; // y is a string, "4"
z = x - y; // this sets z to the number 2
相反地,如果在某个期待字符串的地方我们使用数字变量,解释器则尝试将该数字转换为一个串。在下例中,z被设置为串“64”,而非数字10。这又是为什么呢?因为表达式x + y中的第二个操作数是个串,因此,加号运算符完成的是串连接而不是算术运算中的加法。x的值(数字6)被转变为串“6”,然后与串“4”(y的值)相连接,产生结果“64”。
x = 6; // x is a number, 6
y = "4"; // y is a string, "4"
z = x + y; // this sets z to the string "64"
自动的类型转换发生在对作为表达式的组成部分的某个变量求值的时侯,转换的对象是该变量中所含数据的一个副本 —— 并不影响原始的变量类型。某个变量的类型只有在该变量被赋予某个与其现有值的类型不匹配的数据值时才发生根本转变。不好,不好,这太繁琐太复杂了,我写起来困难,你看着更是一头雾水,我们把这几句话打散,力求简洁明了。从上述两个例子开始:x + y和x - y是两个表达式,而变量x和y分别是表达式的组成部分,在语句z = x + y;和z = x - y;中,为了得到变量z的值,我们必须先对x和y求值,但是,在这两个语句中,变量x和变量y的类型分别是数字型和字符串型,也就是说两个操作数的数据类型不一致(不匹配),因此,就发生了自动的类型转换(解释器根据上下文环境决定变量所包含数据的类型),重要的是,你必须记住:此时被转换了类型的数据并不是变量所包含的原始数据,而是该原始数据的一个副本;换句话说,变量的类型并未改变,改变的只是变量中所包含的数据的一个副本的类型。既然如此,我们应该更进一步,了解变量的类型何时发生转变;举例说明,在赋值语句:x = 6;中,变量x此时的类型是数字型(一目了然),如果我们随后再次为变量x赋值:x = "abc";,现在,x的类型不再是数字型,而是字符串型(我们有时也称其为文本串型)。总结一下,变量x的原类型为数字型,再次赋值后变为字符串型,这是因为变量x最后被赋予的值("abc")的类型与此前变量所包含的值(6)的类型不一致,因此,出现了动态转换变量类型的情况,变量的类型发生了根本地转变。再回到上面两个例子中,因为并未对变量x和y重新赋值(赋不同类型的值),所以y最终仍保持为字符串型,而x也保持为数字型。

我想你一定注意到在上述两个例子中操作符的不同表现,z = x + y;和z = x - y;中的两个操作符(加号“+”和减号“-”)对这两个赋值语句有着意义深远的影响。在z = x - y;中,y的串值“4”转换成为数字值4;而在z = x + y;中,发生了相反的情况,x的数字值6变成串值“6”。这是因为对于操作符“+”和操作符“-”来说,存在着迥然而异的数据类型转换规则。我们将在以后的章节中详细讨论数据类型转换规则以及操作符。

3.手工确定类型
自动的数据类型定义和转换会带来便利,但是,正如上述例子中所描述的那样,可能会产生意外的结果。对不同类型的数据或变量进行操作的命令在开始执行之前,你或许想要首先确定某个变量的数据类型;此时可以使用typeof操作符:
productname = "macromedia flash"; // string value
trace (typeof productname); // displays: "string" on the output window when you run the script
一旦我们知道了某个变量的类型,我们可以有选择地进行下一步处理。例如,在运行某段代码之前我们先检查该代码段中的某个变量是否是数字型:
if (typeof age == "number" {
// okay to carry on
} else {
trace ("age isn''''t a number"; // display an error message
}
关于typeof操作符的所有细节我们将在以后专门讨论

本新闻共2页,当前在第1页  1  2  


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:多个小球进行碰撞检测
下一篇:详解accordion 组件做导航栏过程
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
flash 5.0 功能简介
flash 菜单简要说明(1)
flash 中音频素材的处理
flash shared library 的使用方法(1)
flash 浮动面板使用大全(1)
flash 5.0 功能简介
flash 菜单简要说明(1)
flash 中音频素材的处理
flash shared library 的使用方法(1)
flash 浮动面板使用大全(1)
flash 浮动面板使用大全(2)
flash 鼠标指针
flash 替换外部图片或声音
flash 物体的淡出效果制
flash 引导线的使用
flash常用mc属性控制(1)
flash 神奇遮罩之原理篇(1)
flash mx2004入门与进阶实例——mtv实
flash mx2004入门与进阶实例(1)
flash 神奇遮罩之原理篇(2)
优秀公益广告作品欣赏(8)
java数据类型转换
windows xp专业版iis连接数的更改
新开放qq免费挂级网站
优秀公益广告作品欣赏(7)
免费在qq上看在线电影电视听音乐
office2007简体中文版浮出水面 美图抢
qq最新版下载 2006 beta2 体验新感受 
qq珊瑚虫外挂4.0版本发布!
web服务器配置全攻略(三)
dreamweaver mx 2004从零开始(1)
利用css改善网站可访问性
如何让mm的脸通透可人
msn8.0下载
asp 五大高效提速技巧
如何在win20003中更好的玩游戏
qq收费头像免费使用的方法 
微软将在华推分期付款,充值卡pc 可低价
 amd处理器am2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息