ActionScript 学习笔记(入门)

Posted on 2009-10-22 19:42 小白·菜 阅读(171) 评论(0)  编辑  收藏 所属分类: ActionScript3

    最近转学AS3,将所学知识整理一下。由于我是学Java的,所以着重点都是跟Java的对比。


声明方式

public static var varName:Class = new Class();//普通变量  
public static const varName:Class = new Class();//常量  
var varName:*;//任何类型  
var varName;//无类型变量,应该是as2遗留下来的 

数字

  • int 与 Java 中的 Integer 相同
  • uint 无符号,只有正数,同样是32位,最大值比int多一倍。专门用来表示包含alpha通道的颜色:0xFFFFFFFF
  • Number 相当于 Java 的 Double。此处需要注意:连续的浮点数相加无法得到整数,相差太多的浮点数相加可能忽略掉小值。

类型默认值

  • Number NaN 注意NaN不等于任何东西,包括自己。只能用用工具方法判断。
  • * #ff0000


运算符
     运算符本身是一种特殊的函数,运算对象相当于参数。

  • == 和 === 前者对比前先进行类型转换,后者不进行类型转换。Array中的 indexOf就是 ===。
  • != 和 !== 同上
  • is 判断类型,一般与 as 同用:if( var1 is Number) var1 as Number;
  • in 相当于 Java 中的 contains


Array
     相当于 Java 中的 ArrayList。更加神奇的是,它既是栈又是队列。

  • push 从末尾增加一个对象
  • unshift 从头增加一个对象
  • pop 从末尾删除一个对象并返回
  • shift 从头删除一个对象并返回
  • splice(起点索引,删除数量,插入元素集合) 删除和插入元素,类似Python切片,起点可以为负值。
  • slice(起点索引,终点索引) 仅仅返回所选范围,其他同上。
  • concat 相当于 Java 中的 addAll 方法


超强的Function
     两种声明方式:

public function functionName():void{};  
public var function = function() {} 
function 是对象,继承 Object。所以可以闭包,还可以放在数组里面。

function 可以游离于 Class 之外,所以会有“全局函数”一说。

function 参数有默认值,有可变数组参数。可以说怎么方便怎么来,如此便有了千变万化的用法。

function 也是动态类,可以自行添加属性。

AS3 中方法的参数是引用传递。

Object 的新用法
     在 AS3 中 Object 除了作为基类还有一种用法—— Map。
用法:

value = obj[“key”];  
for (var key in obj) {};  
for each( var value in obj){}


密封类/动态类

     密封类可以理解为Java中的类,无法动态添加属性等。而相对的可以用 dynamic声明动态类。动态类内涵哈希表,可以理解为 Java 中的 Map<String, Object>。 目前我所知道的动态类只有 MovieClip。一般用于 Flash 中给 MC 添加子元素的时候动态增加 name 属性之用。此处可以善加利用。

AS3编辑及运行机理
     AS3运行前需要先编译成ActionScript bytecode(ABC)文件。ABC必须在SWF文件中才能运行。Flash中 会将每一个 MovieClip 当作一个as文件,进行编译。所以如果 MC 没有绑定 as 的话编译时会自动生成一个同名 as 。Flex中的 mxml 在编译过程中会先编译成 as,进而编译成 ABC。 fla 中还可以包含资源以及外部资源链接。


文档类
     文档类相当于Java中的 main 方法所在的类,是程序的入口。as代码有两个地方可以写,一个是时间轴上的关键帧,另一个是 as 文件。此处的文档类就是 as 文件的形式,应该尽量使用这种形式。


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 3, comments - 1, trackbacks - 0, articles - 3

Copyright © 小白·菜