每天进步1% |QQ聊天室 | 反恐精英 | 超级大富翁 | 宠物连连看 | 英汉词典 | 心理测试

杭州师范大学学生论坛's Archiver

pshznu 发表于 2008-9-24 15:28

ActionStript3.0 特性介绍

ActionStript3.0 特性介绍

ActionScript 是针对 Adobe Flash Player 运行时环境的编程语言,它在 Flash 内容和应用程序中实现了交互性、数据处理以及其它许多功能,ActionScript 是由 Flash Player 中的 ActionScript 虚拟机 (AVM) 来执行的。ActionScript代码通常被编译器编译成“字节码格式” ,有点类似 java 的处理和运行机制。变过 C#,Java和javascript程序的朋友,肯定能在 ActionScript 中找到这些语言的影子。

以下是Actionscript的基本特性介绍。具体完整的学习,还是需要找找资料。例如,《ACTIONSCRIPT 3.0权威指南》[url]http://www.china-pub.com/208958[/url]
《FLASH/FLEX ACTIONSCRIPT 3.0交互式开发详解:语法基础、典型应用、视频网站实战》[url]http://www.china-pub.com/38096[/url]

1. 内置命名空间和自定义命名空间

四个内置修饰符:

public :对所有代码可见

private: 只对类内部可见

internal :只对定义所在的同一包内可见

protected :对同一包以及不同包的子类可见



自定义命名空间:使用关键字namespace定义命名空间,声明属性和方法时,应用命名空间。

AS 代码:

Namespace testSpace="org.blogjava.jm/ testSpace ";

testSpace myfunction2():void{}

调用使用 use 关键字打开命名空间

use mySpace2;

myfunction2();


2. Local 变量特点

与java不同的是,在as3中,变量没有块级作用域(即两人大括号中间),如果在一个块内声明了一个变量,比如一个for循环内声明了一个变量,它在该代码所在整个函数内都是可访问的。

function myFunction():void{

for(var i:int=0;i<5:i++){

var last:int = i;

}

trace(last);

}



last 在 for 中定义但可以在 for 块外面访问到,个人觉得这样设计欠妥,尽管很方便。

3 Dynamic 类

Object 类本身就是动态类,当然也可以用 dynamic 关键字来声明一个类,所谓动态就是在运行时可以对类追加属性和方法。

dynamic class Protean{}

var myProtean:Protean = new Protean();

myProtean.name = "jack.wang";

myProtean.password = 3;

trace(myProtean. name , myProtean. password );

定义函数的两种方式:函数语句和函数表达式
//函数语句声明

Function fun1():void{}

//函数表达式声明

var fun2:Function = function():void{}

函数表达式声明的函数是不能够被垃圾回收的,必须显示的调用 delete 命令。

var t:Test = new Test(); //t是动态类Test的一个实例

t.funt = function(){};//把一个函数声明为t的一个属性

delete t.funt; //删除刚才新增的函数,我们刚才声明的函数也被回收了


5 在as3中也有arguments对象,功能基本上和javascript中的一样。

arguments 对象是一个数组,其中包括传递给函数的所有参数,arguments.length 属性报告传递给函数的参数数量,(避免将 "arguments" 字符串作为参数名,因为它将遮蔽 arguments 对象)

function traceArgArray(x:int):void

{

for (var i:uint = 0; i < arguments.length; i++)

{

trace(arguments[i]);

}

}

raceArgArray(1, 2, 3);

// 输出:

// 1

// 2

// 3


当然也可以用类似 java 的形式

function traceArgArray(x: int, args)

6 在as3中允许定义同名的静态属性和实例属性

class StaticTest

{

static var message:String = "static variable";

var message:String = "instance variable";

}

// 在脚本中

var myST:StaticTest = new StaticTest();

trace(StaticTest.message); // 输出:静态变量

trace(myST.message); // 输出:实例变量



7 在as中有一个叫做set和get存取器的东西,类似JavaBean,但又有所不同。

class GetSe
t{

private var privateProperty:String;

public function get publicAccess():String

{

return privateProperty;

}

public function set publicAccess(setValue:String):void

{
privateProperty = setValue;
}
}

页: [1]

站长:yinet QQ:仅限论坛方面的问题
广告联系: Email:
本论坛为学生自主管理,与学校官方无关!

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.