作者cjcat2266 (CJ Cat)
看板Flash
标题[讨论] 使用 literal
时间Fri Oct 5 01:34:36 2007
literal 带有着 anonymouse(匿名) 的味道
也就是说一个 literal 资料没有所谓的变数名称
var i:Number = 10;
↑变数名称 ↑Number literal,只代表10这个值,没有名字
像是大家所熟知的字串表示方式 "abc" 也是一串String literal
literal 只有将他的值和其他变数合并,或者把值丢给变数才有意义
不然一个没有名字的资料,出现过一次以後就再也没办法取得
当需要指派值给等号左方的变数
如果该值是"确定只会出现这一次"的话
就不需要再另外宣告一个变数占空间,直接用literal可以节省空间
Flash除了primitive datatype 有literal 表示法以外
尚有Array, Object, Function有 literal 表示法
(1)Array literal - 相信许多人都很熟悉这个 literal 表示法
var a:Array = [1, 2, 3];
↑这个就是 Array literal
(2)Object literal - Object 物件只是一个可以装变数的"容器"
所以他的 literal 表示法可以列举出他所有的property
var b:Object = {i:Number = 1, j:Number = 2, k:Number = 3};
↑大括号包含的就是用列举法列出的property
(3)Function - 函式也有 literal??
没错,在Flash里面的函式其实也是一种物件
以下两种函式 myFunc() 宣告方式其实是等价的
function myFunc(input:String):Void {
trace(input);
}
↑此为正常的函式宣告方式,也是大家所习惯使用的
var myFunc:Function = function(input:String):Void {
trace(input);
};
↑这个就是Function literal
有没有注意到Function literal的下括号後面有个分号?
这就像是宣告变数的statement最後面有个分号一样
所以Function literal的使用方式就是这样
各种物件的event handler就是 Function objects
所以可以用指派变数的方式来修改event handler
this.createEmptyMovieCilp("clip_mc", 0);
this.clip_mc.onEnterFrame = function() {
trace("test message.");
};
以上event handler的使用方式大家应该都很习惯
但是其背後意义就是把一个 Function literal 丢给onEnterFrame这个物件
以上是Array, Object, 和 Function literal 的简介
希望可以让更多人了解 literal 这样的概念 :)
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.89.126
※ 编辑: cjcat2266 来自: 61.228.89.126 (10/05 02:06)
1F:推 versitility:推推 07/11 20:07