作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] 请教一下 AS 2.0 变数 范围
时间Fri Apr 3 11:27:39 2009
上图层的code先执行这个概念是正确的
但是"var, function"的部分都会先执行完毕
"="的则是照图层顺序执行
这个跟物件导向概念的的class有关
在影格上面宣告的变数和函式
其实相当於在一个class定义里宣告property与method
所以如果在影格上面写
//上涂层
function print():Void {
trace(i is Number);
}
//下图层
print();
var i:Number = 1;
相当於这样的class定义
class MyMovieClip {
//constructor
public function MyMovieClip() {
print();
i = 1;
}
public function print():Void {
trace(i is Number);
}
public var i:Number;
}
这样会印出true,只是在印true的时候i还没给定值
但是不会出错,因为print()可以存取到i
如果你对class有一定的认知
那应该看得出来function print()和var i:Number
谁先写是没有差别的
在class定义里面的property和method宣告的scope(有效范围)是整个class都有效
以你提供的范例
array = new Array()
应该还是要写在
array.push()
前面
因为array没有先指到一个物件,其值还会是null,会出错
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫
Blog
http://cjcat.blogspot.com
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.75.147
※ 编辑: cjcat2266 来自: 61.228.75.147 (04/03 11:29)
1F:推 Lawnchern:感谢 04/03 13:18