[討論] 使用 literal

看板Flash作者 (CJ Cat)時間18年前 (2007/10/05 01:34), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
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)

07/11 20:07, , 1F
推推
07/11 20:07, 1F
文章代碼(AID): #171IGk9d (Flash)
文章代碼(AID): #171IGk9d (Flash)