《Flash ActionScript 3 殿堂之路》二,三,四章 运算符,语句,函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Flash ActionScript 3 殿堂之路》二,三,四章 运算符,语句,函数相关的知识,希望对你有一定的参考价值。

1.  运算符相关

  

1         var a:int = 5;
2              var b:uint = 5;
3              trace(a === b);//输出true。全等运算符对于数值类型一视同仁,
4                             //如果int,uint和Number类型数值相同,全等运算

2.

 1 //注意:等于和全等运算符对于变量的默认值的比较是不同的
 2              var  a:Number;
 3              var  b:Number;
 4              trace(a);
 5              trace(b);
 6              trace(a == b);
 7              trace(a === b);
 8              //输出:NaN
 9                     //NaN
10                     //false
11                     //false
12             
13                 
14             //注意null和undefined的情况
15             trace(undefined == null);//ture
16             trace(undefined === null);//false
17             
18             //在AS2中,以下这种情况输出的是false,但是AS3会自动调用它们的值来进行判断
19             //而不是引用
20             var a = new int(1);
21             var b = new int(1);
22             trace(a == b);//true

技术分享

3.

 1 //is 判断一个对象是够属于一种类型,返回布尔值
 2             trace(9 is Number);//true
 3             
 4             
 5             //as 如果对象属于一种类型,那么as返回这个对象,否则返回null
 6             trace(6 as Array);//null
 7             trace(6 as Object);//6
 8             trace("hello" as Object);//hello
 9             //?? 在AS3中,基元数据类型也是对象。
10         
11             
12             //in 关键字用来判断一个对象是否作为另一个对象的键
13             //返回布尔值。eg
14             var a:Array = ["a", "b", "c"];
15             trace(2 in a);//true
16             trace(3 in a);//false
17             
18             var b:Object={
19                 name:"li",
20                 age:10
21             }
22             trace("name" in b);//true
23             trace("age" in b);//true
24             
25 
26             //delete的作用:在AS3中,delete关键字可以删除对象的动态实例属性
27             //非动态属性不能删除
28             //如果要将一个属性所持有的引用删除,利用将null赋值给该属性。
29             var b:Object={
30                 name:"li",
31                 age:10
32             }
33             delete b;//报错
34             delete b.name;
35             trace(b.name);//undefined
36             
37             b = null;
38             trace(b);//null

4.  语句相关

 1 //注意 if...else if...else 的使用技巧
 2             //一旦有一个if语句中的条件表达式为真,那么该if语句包含的分支流程会执行
 3             //但是该语句之后的其他的if...else语句都不会被执行。
 4             //(1)应当把精确范围较小的条件表达式提前
 5             //(2)在互斥条件判断下,为了让程序高效率执行,应当将最有为真得if选项提前到最前面。
 6             //eg:可能出现以下错误
 7             var foo:int = 500;
 8             if(foo>0){
 9                 trace("foo是一个正整数");
10             }else if(foo>100){
11                 trace("foo是一个大于100的正整数");
12             }else{
13                 trace("foo小于0");
14             }
15             
16             
17             //for...in 和 for each...in语句用来枚举一个集合中所有的元素
18             //在访问Object这样的非数字索引的集合和,可以使用for...in 和 for each...in。
19             //注意:for...in枚举变量,代表的是键;for each...in枚举变量直接代表集合的成员。
20             
21             var book:Object={
22                 book_1:"b1",
23                 book_2:"b2",
24                 book_3:"b3"
25                 
26             }
27             for(var k in book){
28                 trace("成员名字(键):" + k + "\\t成员值:" + book[k]);
29             }
30             
31             //输出:
32             //成员名字(键):book_3    成员值:b3
33             //成员名字(键):book_1    成员值:b1
34             //成员名字(键):book_2    成员值:b2
35             //??并不是按顺序枚举??
36             
37             for each(var k in book){
38                 trace( "成员值:" + k);
39             }
40             //输出
41             //成员值:b1
42             //成员值:b2
43             //成员值:b3

4.

 

 1 //第四章,AS3中的函数
 2             //AS3中的函数分两类:方法和函数闭包。
 3             
 4             //定义函数的两种方法:函数语句定义大,函数表达式定义法
 5             function f1(){
 6                 //函数语句
 7             }
 8             
 9             var f2:Function=function (){
10                 //函数语句
11             }
12             
13             //两种定义方式的区别
14             //(1)提升问题。函数语句定义法定义的函数在编译时会提升带最前面,
15             //而函数表达式定义法只能先定义再使用。
16             
17             testA();//写在这里会报错
18             testB();
19             var testA:Function = function():void{trace("A")};
20             function testB():void{
21                 trace("B");
22             }
23             
24             //(2)this关键字的记忆
25             //(3)内存管理和垃圾回收区别
26             //(4)本质区别(4.3)
27             
28             //注意函数参数是按值传递还是按引用传递
29             //在AS3中,所有的参数都是按引用传入的。只不过,基元数据类型是不变对象,传引用和传值的效果是一样的。
30         
31             //设置默认参数 eg
32 function test(a:int=3,b:int=2,c:int=1):void{ 33 trace("The sum is:", a + b + c,a, b, c); 34 } 35 test(); 36 test(4); 37 test(4, 4); 38 test(4, 4, 4); 39 //输出 40 //The sum is: 6 3 2 1 41 //The sum is: 7 4 2 1 42 //The sum is: 9 4 4 1 43 //The sum is: 12 4 4 4 44

 


以上是关于《Flash ActionScript 3 殿堂之路》二,三,四章 运算符,语句,函数的主要内容,如果未能解决你的问题,请参考以下文章

《Flash ActionScript 3 殿堂之路》二,三,四章 运算符,语句,函数

Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

stopImmediatePropagation和stopPropagation (事件防止侦听)

ActionScript 3 Actionscript 3 / Flash中的半色调效果

ActionScript 3 使用Flash / Actionscript 3进行3D翻转效果

ActionScript 3 使用Actionscript 3 / Flash进行流体/果冻(ish)模拟