2个回答
展开全部
创建Object:
var obj:Object = {
property_number:0,
property_string:"String类型的属性",
method_in:function():void{trace("写在Object里面的方法");},
method_out:method_trace
}
function method_trace():void{
trace("写在Object外面的方法");
}
访问Object:
trace(obj.property_number); // 通过“.”操作符访问
trace(obj["property_string"]); // 通过“[ ]”访问
obj.method_out(); // 调用Object中的方法
Object动态添加属性和方法:
obj.property_boolean = false; // 添加一个Boolean类型的属性
obj.method_count = function():void {trace(1+1);} // 添加方法的一种方式
obj.method_getTime = getTime; // 添加方法的另一种方式
function getTime():void { // 这是一个获取当前系统时间的方法
var mydate = new Date();
var year = mydate.getFullYear();
var month = mydate.getMonth()+1;
var date2 = mydate.getDate();
var day = mydate.getDay();
var hour = mydate.getHours();
var minute = mydate.getMinutes();
var second = mydate.getSeconds();
var mill=mydate.getMilliseconds();
trace("现在时间是:"+hour+":"+minute+":"+second+":"+mill);
}
// 自己手打的,希望对你有帮助
var obj:Object = {
property_number:0,
property_string:"String类型的属性",
method_in:function():void{trace("写在Object里面的方法");},
method_out:method_trace
}
function method_trace():void{
trace("写在Object外面的方法");
}
访问Object:
trace(obj.property_number); // 通过“.”操作符访问
trace(obj["property_string"]); // 通过“[ ]”访问
obj.method_out(); // 调用Object中的方法
Object动态添加属性和方法:
obj.property_boolean = false; // 添加一个Boolean类型的属性
obj.method_count = function():void {trace(1+1);} // 添加方法的一种方式
obj.method_getTime = getTime; // 添加方法的另一种方式
function getTime():void { // 这是一个获取当前系统时间的方法
var mydate = new Date();
var year = mydate.getFullYear();
var month = mydate.getMonth()+1;
var date2 = mydate.getDate();
var day = mydate.getDay();
var hour = mydate.getHours();
var minute = mydate.getMinutes();
var second = mydate.getSeconds();
var mill=mydate.getMilliseconds();
trace("现在时间是:"+hour+":"+minute+":"+second+":"+mill);
}
// 自己手打的,希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
TableDI
2024-07-18 广告
2024-07-18 广告
Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击4步自动完成vlookup匹配,无需手写公式,免费使用!...
点击进入详情页
本回答由TableDI提供
展开全部
在前面的内容中,已经知道了如何为变量声明数据类型,也认识了数据类型的种类。编程时有时需要判断变量的数据类型,并有可能进行数据类型的转换。本节将介绍数据类型的检测及数据类型转换等知识。
如果在定义变量时,没有声明变量的数据类型,系统会以“*”类型进行处理。“*”数据类型是AS3.0中新增额数据类型,可以与Object类型配合使用,用来声明不确定的数据类型。
如果定义的变量都没有声明数据类型。以往版本的AS会把没有声明数据类型的都当成Object类型处理,而在AS3.0中,没有声明数据类型的以“*”类型处理“*”类型可以是简单数据类型,也可以是复杂数据类型。
下面的代码声明一个“*”数据类型变量,并赋值为5:
var a:*=5;
虽然代码是正确的,但这样声明的“*”数据类型其实会被自动转换为Number类型处理,因为变量a的值5是数字,因此,上面的代码声明的“*”数据类型并无意义。如果能确定变量的数据类型,应明确声明变量的准确数据类型;只有当数据类型不确定时,才声明为“*”数据类型。
例如,flash应用程序能用YRLLoader类从服务器加载变量,这些变量可能是一个表示游戏分数的数值,也可能是表示用户名的字符串,所以加载的变量类型是不确定的,这时如果要定义一个变量来接受服务器中的变量,就可以声明为“*”类型。
又如,在帧的跳转中,可以跳转到具体的某一帧,帧数用数字来表示,即int类型,但也可以跳转到某个定义有帧标签的帧,帧标签是字符串,即String。也就是说,如果要声明一个变量表示某帧,可能是int类型,也可能是String类型,这样的变量就可以声明为“*”数据类型。
下面的代码是使用“*”数据类型的例子:
//声明一个*数据类型的变量
var a:*;
//给a赋值数字50
a=50;
//给a赋值布尔值
a=true;
从上面的代码可以看出,“*”数据类型的变量可以接受简单数据类型的值,也可以接受复杂数据类型的值。
对于具体的数据类型,有些类型是可以自动转换的,但有些不行。
下面的代码现实了数据类型自动转换的过程:
//声明String类型变量
var a:String;
//赋值为8
a=8;
虽然上面的代码为String类型变量赋值数据8,但实际上是先把8转换成字符串,再进行赋值操作。犹豫8可以转换为字符串,因此,上面的代码不会报错,但为了养成一个好的习惯,还是应声明明确的数据类型,并准确赋值。
下面代码的类型转换不能进行:
//声明布尔值变量
var a:Boolean;
//赋值字符串
a=”zjs35”;
虽然把字符串赋值给变量a,但String不能转换为Boolean,因此,a的类型还是Boolean类型。
“*”类型的默认值是undefined,而Object类型的默认值是null,如果尝试给一个Object类型的变量赋值undefined,编译器会自动转换为null。
Object类型在AS3.0中发生了一些变化,首先,在AS2.0中,对于没有声明数据类型的变量,都同意当成Object类型处理;其次,Object数据类型的变量的默认值不再是undefined,而是null。
As3.0中的任何类都是Object类得子类,例如,Number类是Object的子类,Array类是Object类的子类。所以,可以通过new操作符来创建简单数据类型的变量。
下面的代码创建了一个简单数据类型的变量并赋值:
var num:Number=new Number(3);
虽然使用了new操作符,但as3.0并没有按一般的Object类型来处理这个值,也就是说,上面的代码与下面的代码是一样的:
var num:int=3;
下面的代码创建了一个复杂数据类型的变量并引用:
var arr:Array=new Array();
由于Object类是所有类得父类,因此,Object类型也可以像“*”数据类型一样,可以接受任何数据类型
下面的代码也是正确的:
//声明Object数据类型的变量
var a:Object;
//给a赋值数据50
a=50;
//给a赋值布尔值
a=true;
//变量a引用数组
a=[0];
//变量a引用对象
a={x.0};
代码中的[],{}分别表示数组,对象运算符,可以快速创建数据和对象,a=[0]是创建含元素0的数组,a={x.0}是创建含属性x且值为0的对象。
参考内置变量的类型特点,能确定类型的一定要指定确定类型;如果不能确定类型,但能确定引用类型,用Object:如果可能是引用,也可能是基本类型,则用“*”。
“*”类型变量与Object类型变量的主要区别在于“*”类型变量可以是undefined,而Pbject类型不能为undefined.它们的默认值分别为undefined,null。
如果在定义变量时,没有声明变量的数据类型,系统会以“*”类型进行处理。“*”数据类型是AS3.0中新增额数据类型,可以与Object类型配合使用,用来声明不确定的数据类型。
如果定义的变量都没有声明数据类型。以往版本的AS会把没有声明数据类型的都当成Object类型处理,而在AS3.0中,没有声明数据类型的以“*”类型处理“*”类型可以是简单数据类型,也可以是复杂数据类型。
下面的代码声明一个“*”数据类型变量,并赋值为5:
var a:*=5;
虽然代码是正确的,但这样声明的“*”数据类型其实会被自动转换为Number类型处理,因为变量a的值5是数字,因此,上面的代码声明的“*”数据类型并无意义。如果能确定变量的数据类型,应明确声明变量的准确数据类型;只有当数据类型不确定时,才声明为“*”数据类型。
例如,flash应用程序能用YRLLoader类从服务器加载变量,这些变量可能是一个表示游戏分数的数值,也可能是表示用户名的字符串,所以加载的变量类型是不确定的,这时如果要定义一个变量来接受服务器中的变量,就可以声明为“*”类型。
又如,在帧的跳转中,可以跳转到具体的某一帧,帧数用数字来表示,即int类型,但也可以跳转到某个定义有帧标签的帧,帧标签是字符串,即String。也就是说,如果要声明一个变量表示某帧,可能是int类型,也可能是String类型,这样的变量就可以声明为“*”数据类型。
下面的代码是使用“*”数据类型的例子:
//声明一个*数据类型的变量
var a:*;
//给a赋值数字50
a=50;
//给a赋值布尔值
a=true;
从上面的代码可以看出,“*”数据类型的变量可以接受简单数据类型的值,也可以接受复杂数据类型的值。
对于具体的数据类型,有些类型是可以自动转换的,但有些不行。
下面的代码现实了数据类型自动转换的过程:
//声明String类型变量
var a:String;
//赋值为8
a=8;
虽然上面的代码为String类型变量赋值数据8,但实际上是先把8转换成字符串,再进行赋值操作。犹豫8可以转换为字符串,因此,上面的代码不会报错,但为了养成一个好的习惯,还是应声明明确的数据类型,并准确赋值。
下面代码的类型转换不能进行:
//声明布尔值变量
var a:Boolean;
//赋值字符串
a=”zjs35”;
虽然把字符串赋值给变量a,但String不能转换为Boolean,因此,a的类型还是Boolean类型。
“*”类型的默认值是undefined,而Object类型的默认值是null,如果尝试给一个Object类型的变量赋值undefined,编译器会自动转换为null。
Object类型在AS3.0中发生了一些变化,首先,在AS2.0中,对于没有声明数据类型的变量,都同意当成Object类型处理;其次,Object数据类型的变量的默认值不再是undefined,而是null。
As3.0中的任何类都是Object类得子类,例如,Number类是Object的子类,Array类是Object类的子类。所以,可以通过new操作符来创建简单数据类型的变量。
下面的代码创建了一个简单数据类型的变量并赋值:
var num:Number=new Number(3);
虽然使用了new操作符,但as3.0并没有按一般的Object类型来处理这个值,也就是说,上面的代码与下面的代码是一样的:
var num:int=3;
下面的代码创建了一个复杂数据类型的变量并引用:
var arr:Array=new Array();
由于Object类是所有类得父类,因此,Object类型也可以像“*”数据类型一样,可以接受任何数据类型
下面的代码也是正确的:
//声明Object数据类型的变量
var a:Object;
//给a赋值数据50
a=50;
//给a赋值布尔值
a=true;
//变量a引用数组
a=[0];
//变量a引用对象
a={x.0};
代码中的[],{}分别表示数组,对象运算符,可以快速创建数据和对象,a=[0]是创建含元素0的数组,a={x.0}是创建含属性x且值为0的对象。
参考内置变量的类型特点,能确定类型的一定要指定确定类型;如果不能确定类型,但能确定引用类型,用Object:如果可能是引用,也可能是基本类型,则用“*”。
“*”类型变量与Object类型变量的主要区别在于“*”类型变量可以是undefined,而Pbject类型不能为undefined.它们的默认值分别为undefined,null。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询