AS 数据类型的一些探索(1)
来源:互联网 发布:js keycode对应表 编辑:程序博客网 时间:2024/06/08 19:35
AS 数据类型的一些探索(1)
无聊的时候随便看看MM Flash的文档,在Actionscript_ref中看到了int这个关键字,以前因为习惯了C和java的写法,在写AS的时候也会错写到int,我知道它是AS的关键字,但是一直不知道它的作用,这回我仔细的看了看。
int
Availability
Flash Player 4. This function was deprecated in Flash
Usage
int(value)
Parameters
value A number to be rounded to an integer.
Returns
Nothing.
Description
Function; converts a decimal number to an integer value by truncating the decimal value. This
function is equivalent to Math.floor() if the value parameter is positive and Math.ceil() if
the value parameter is negative.
See also
Math.floor(), Math.ceil()
大致意思是,int在Flash Player 4时就已经出现了,Flash 5是用于四舍五入的一个函数,并且与Math.floor(), Math.ceil()有着比较密切的联系。于是,我就想,趁这个空闲有必要去深入学习一下Flash数据类型、以及类型转换方面的知识。
不管怎么说,int这个东西还是要先试试才可以知道它具体的功用的:
a=2.9;
b=3.1;
c=-2.9;
d=-3.1;
trace("int(a)="+int(a)+";int(b)="+int(b));
trace("int(c)="+int(c)+";int(d)="+int(d));
输出
int(a)=2;int(b)=3
int(c)=-2;int(d)=-3
看来并非是四舍五入哦,奇怪了。在金山糍粑中有一行解释了round这个词:弄圆, 使成圆形, 绕行, 完成, 围捕, 四舍五入。看来这里不好把round解释为四舍五入,应该是“弄圆”引申一下就是弄完整,再引申一下就是求整,于是,我这里得出了结论:
int函数是用来小数求整的。
Flash的基本数据类型:
Flash包含以下几种最基本的数据类型:String ,Number,Boolean,Object, MovieClip,Null, Undefined。String就是字符串。Number就是数值类型。Boolean是逻辑类型Object就是object类型(白说),它是一组属性的集合。MovieClip是在AS中唯一包含图形元素的数据类型。Null数据类型仅有一个值null。表示变量还没有受到数据,变量还未赋值等。Undefined数据类型也只有一个undefined值,用于一个变量还未被赋值,听起来似乎和null差不多。不过等一下还是要做一些测试的,看看到底有什么不同。不过首先要来看看一个比较有用的函数typeof,这个函数可以用来确定变量到底是什么类型的。看看测试代码:
var a:String;
var b:Number;
var c:Boolean;
var d:MovieClip;
var e:Object;
trace("Type_a="+typeof(a));
trace("Type_b="+typeof(b));
trace("Type_c="+typeof(c));
trace("Type_d="+typeof(d));
trace("Type_e="+typeof(e));
a="LeeFJ";
b=22;
c=true;
d=_root.attachMovie("leaf","f",4);
e={name:"LeeFJ"};
trace("+++++++++++++++++++++++++++++++++");
trace("Type_a="+typeof(a));
trace("Type_b="+typeof(b));
trace("Type_c="+typeof(c));
trace("Type_d="+typeof(d));
trace("Type_e="+typeof(e));
输出结果:
Type_a=undefined
Type_b=undefined
Type_c=undefined
Type_d=undefined
Type_e=undefined
+++++++++++++++++++++++++++++++++
Type_a=string
Type_b=number
Type_c=boolean
Type_d=movieclip
Type_e=object
看起来有但奇怪
var a:String;
var b:Number;
var c:Boolean;
var d:MovieClip;
var e:Object;
似乎只是对变量做了一个声明,并没有确定变量的类型,不对,声明变量以后是确定变量为Undefined类型,只有对变量赋值以后,变量才有了他声明中所对应的数据类型。这个不难联想到AS2中的自动数据类型和严格数据类型。我想,严格数据类型也是基于自动数据类型的,否则为什么变量刚声明时是Undefined类型的呢。不过综上,可以得到的结论是:变量在刚声明的时候是Undefined类型的,不管是严格数据类型的定义还是自动数据类型的定义,但是在对变量赋值以后,也就是在对变量分配了内存空间以后,变量就获得了声明语句中所指定的那种数据类型。
这个结论应用到函数中也是一样的 道理:
function test(a:String,b:Number,c:Boolean,d:MovieClip,e:Object)
{
trace("Type_a="+typeof(a));
trace("Type_b="+typeof(b));
trace("Type_c="+typeof(c));
trace("Type_d="+typeof(d));
trace("Type_e="+typeof(e));
}
test();
trace("+++++++++++++++++++++++++++++++");
test("",123,true,_root.attachMovie("leaf","f",4),{name:"Leefj"});
输出:
Type_a=undefined
Type_b=undefined
Type_c=undefined
Type_d=undefined
Type_e=undefined
+++++++++++++++++++++++++++++++
Type_a=string
Type_b=number
Type_c=boolean
Type_d=movieclip
Type_e=object
但,问题是,什么时候才会出现null值呢? 哈哈仔细看看再说。
- AS 数据类型的一些探索(1)
- rdd数据类型的探索
- 一些基本的as
- Groovy探索 “as”关键字的深入使用
- AS的一些简单设置
- as遇到的一些bug
- 关于shared_ptr 的一些探索
- text-align 的一些探索
- 关于红黑树的一些探索。
- MySQL的一些数据类型
- 数据类型的一些问题
- 数据类型的一些测试
- gcc, as, ld的一些笔记
- 一些AS的开源项目
- gcc, as, ld的一些笔记
- mybatis sql 的一些问题 with。。。as。。。
- Mac下AS的一些总结
- 版本管理工具和as的一些配置
- [J2SE 5.0专题][2.3]自动装箱和自动拆箱
- 苏轼《江城子》(十年生死)赏析
- Chat Archives
- 如何突破Class中的范围限制[Flash8 Guys]
- Google 招聘的21道题目 (GLAT)
- AS 数据类型的一些探索(1)
- 发布几个坐标系组件
- .ini
- 英文情书(转)
- 圣诞节·圣经与英语(转)
- 友 谊 的 颜 色(转)
- 搜索引擎:平移算法简介
- SQL语法参考
- 有人说爱情就像在捡石头,总想捡到一个适合自己的.......