action script3.0殿堂之路.pdf 读书笔记

1.显示列表API:
spring
shape
movieClip
sprite
---------------
声明变量:
不常用的定义方式:
var h;//未指定类型,默认为untyped
var g:*;//跟上面是一样的效果

uint number int 的使用要注意,
可能计算出来的值不是你想像中的值,
比喻:
var float:Number =0;
for:10次-> float += 0.1;
得到的是0.999999999999;
-------------------------
判断String类型转换成数值类型时,判断String是否能够正确转换成数值
!(Number("string"))
----------typeof用法
trace(typeof 10);//输出:number
返回的是类型说明
----------is的用法
trace(9 is Number);//输出:true
----------in用法
var a:Array = ["q","w","e"];
trace(2 in a); //数组 a 含有索引 2,所以为 true
trace(3 in a); //只有个元素,没有索引为 3 的元素,所以为 false

var b:Object = {ary:a, name:"ok"};
trace ("ary" in b); //true,确实有 ary 为键的属性
----------deleted
2.5.13 delete:ActionScript3 中的作用变了
在 ActionScript2 中可以使用 delete 关键字删除对象任意一个的实例属性。
但在 ActionScript3 中,delete 关键字的作用已经大大减少,它只可以来用删除
对象的动态实例属性,非动态属性不能删除。
如果要将一个属性所持有的引用删除,将 null 赋值给该属性即可。
var b:Object = {ary:"one",name:"ok"};
deleted b; //会报错,不能这样删除了
deleted b.ary; //成功,因为 ary 是 b 对象的动态属性
trace (b.ary); //输出:undefined

b = null;
----------
function testA(...paras):void {
trace ("参数长度:" + paras.length);
for (var i in paras){
trace (paras[i]);
}
}
testA(1,[2,3],"String type");
/*输出:
参数长度:3
1
2,3
String type
*/
function testB(firstPara:String,...args):void {
trace (args.length);
for (var i in args){
trace (firstPara +":"+args[i]);
}
}
testB("B test", [100,200],1000, "Foo");
/*输出:
3
B test:100,200
B test:1000
B test:Foo
*/
-------------动态类---
dynamic class Bar {
public var web:String = “Kingda’s Blog”;
}
---------------------use namespace XXX
use namespace bad;
---------------------:: namespace的用法
::
在同一个类下面,有两个相同的名字的方法,可以这样调用
person.public::hi(); //输出:public:hi()
person.custom::hi(); //输出:custom:hi()

custom function hi():void {
trace ("custom:hi()");
}
private function hello():void {
trace ("private:hello()");
}
--------------命名空间 -------
示例 7-1 的代码中,有一个文档类 SamplePlayer 和一个包外类 Player。
Player 中使用命名空间 phone(电话)和 ball(球类)分别定义了两个 da()
方法。两个 da()在不同的命名空间下有不同的实现。在 SamplePlayer 中通过
use namespace ball 打开了 ball 命名空间。从而调用 foo.da()方法时就调用了
ball 命名空间下的 da()方法。在最后两行又演示了如何联合命名空间明确指定方
法。
通过示例 7-1 的代码,可以对命名空间的使用有一个大概的印象。暂时看不
明白没有关系,命名空间具体的定义和使用在后面还有详细的讲述。

package org.kingda.book.basicoop.namespaces{
import flash.display.Sprite;
public class SamplePlayer extends Sprite{
public function SamplePlayer() {
//use namespace ball;
var foo:Player = new Player();
//foo.da(); //输出:打():我要玩一下球
//下面两行明确指定使用哪一个命名空间中的方法
foo.phone::da(); //输出:打():我要拨个电话
foo.ball::da(); //输出:打():我要玩一下球
}
}
}
namespace phone;
namespace ball;

class Player {
phone function da() {
trace ("打():我要拨个电话");
}
ball function da() {
trace ("打():我要玩一下球");
}
}
-----------接口--------------
如何实现接口
一个类在定义时如果实现(implements)一个接口,其实是在做一个宣告:
它将拥有这个接口定义的所有方法,可以把它当成这种接口的数据类型来使用。
实现接口的语法和继承的语法相似,不过不再使用 extends 关键字,而是使
234
第 10 章 *抽象类和接口
用 implements 关键字。而且一个类可以实现多个接口,多个接口之间用“,”
号隔开。
implements 的使用格式如下。
public class 类名 implements 接口名{…} //单接口
public class 类名 implements 接口名 A,接口 B,接口 C{…} //多接口
--不支持多重继承,但可这样在单继承下,实现多个接口
//注意,A 除了继承 BaseA 外,实现了两个接口
class A extends BaseA implements IHasName,IClonable{

----------------------------
-----------顶级包-----------核心类
setInterval(function,number);

----------------------------string与stringBuilder------------
StringBuilder 类是什么?它对于很多中级爱好者而言,并不熟悉。但是在
Java、NET 中都有这个类的存在。字符串在频繁修改时,效率低下。通俗地说,
StringBuilder 是为了改进这种情况而加进的工具类。下面来详细解释产生这种状
况的情形、原因和解决方式。
其实as3.0 中字符串用+号连接速度是非常快的
-----------------------------

看书的,学到的知识点比较广,很多都没有用到,时间一久必定又忘记.所有要常敲代码.

原文地址:https://www.cnblogs.com/orp1989/p/4517450.html