您的位置:首页 > 移动开发 > Objective-C

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

2015-05-29 20:24 423 查看
        相比于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]);
}
}
}
}


              加油,博仁良!

        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: