ActionScript 3.0 学习(一) Array、Vector以及Object学习

来源:互联网 发布:安徽文华软件 编辑:程序博客网 时间:2024/05/24 06:40

        相比于C语言、C++等,ActionScript的数据类型较少,但是它拥有几个功能很强大的数据类型,它们有很丰富的表达形式和很灵活的操作方式。以下以一小段代码讲解Array、Vector以及Object。

        Array类相当于一个数组,但是其实例对象中的各个元素可以是不同的类型。

        Vector则是保存相同数据类型的数据。它和Array都可以保存ActionScript中各种数据类型,如以下代码中就应用Vecotr存储Sprite显示对象。

        Object在ActionScript中是一切类的基础类,同时它也可以作为数据集合,即可保存数据,也可保存函数,应用属性名(键)即可访问到对应的属性值(键值)。

        

package{import flash.display.Sprite;public class DataType extends Sprite{public function DataType(){var obj:Object = ["A", "B", "C"];//Array()函数将其中的参数添加入对应的Array对象中var arr:Array = Array(obj);trace(obj == arr);trace(arr[0] == obj);trace(arr[0][0]);//as 运算符将obj转换为数组var arr1:Array = obj as Array;trace(obj == arr1);trace(arr1[0] == obj);arr[1] = 1;arr[2] = "hello";trace(arr[0]);trace(arr[1]);trace(arr[2]);//Vector对象实例化时需要初始化值或者new一个对象,否则出错//var v:Vector.<String>;        出错var v:Vector.<String> = Vector.<String>(["hi", "nice"]);trace(v[0]);trace(v[1]);var v1:Vector.<Sprite> = new Vector.<Sprite>();v1[0] = new Sprite();addChild(v1[0]);v1[0].graphics.beginFill(0xff0000);v1[0].graphics.drawCircle(50, 50, 50);v1[0].graphics.endFill();//Object类是所有类的父类,其也可以当做数据集合来使用,有不同于Array,Vector的特征    //Object即可存放数据变量,也可存放方法即函数var foo:Object = {name:"usst", web:"www.usst.com"};//分别用点运算符和数组运算符访问访问成员trace(foo.name);trace(foo["web"]);             //存放函数var bar:Object = {hello:function():void{trace("Hello, guys!");},ok:function():String{return "that's ok";}};//用数组操作符访问函数的形式需注意bar.hello();//函数都是函数类Function的对象(bar["hello"] as Function)();   (bar["hello"] as Function).call(this);(bar["hello"] as Function).apply(this);trace((bar["ok"] as Function).call(this)); trace(bar.ok());//动态添加属性foo.area = "shanghai";bar.welcome = function():void{trace("welcom to shanghai");};(bar["welcome"] as Function).call(this); for(var i:String in foo){trace(i + ": " + foo[i]);}}}}


              加油,博仁良!

        

0 0
原创粉丝点击