Flash 板


LINE

※ 引述《a149851571 (yem)》之銘言: : http://www.tink.ws/blog/as-30-hittest : 這是一個老外寫的hittest..它可以判斷不規則形狀的物件 : 我在fla檔裡面是這樣寫的 : import ws.tink.display.*; : var hitst:HitTest = new HitTest(); : if(hitst.complexHitTestObject(this.circle_1,this.circle_2,1)) : trace("hit!!"); : 會一直出現錯誤: : 1061: Call to a possibly undefined method complexHitTestObject through a : reference with static type ws.tink.display:HitTest. : 請問我還有哪裡需要改的嗎? 因為原Po問了 有static 和 沒static 的差別... 只好拿出不大好吃的物件導向程式語言解釋一下...orz 有加 static 修飾字的 function 表示這個 function 是一個 class function 而沒有加 static 修飾字的 function 表示這是一個 object function class function 和 object function 有啥不一樣呢... 就是一個不用 new 就可以用(static, class function), 一個要 new 才可以用(object function)。(好像廢話...orz) 事實上,這兩個在執行的時候記憶體的使用也是不一樣的... 想像一下,我們有一隻AS3程式叫做血腥 "動物園.as" 所以我的 "動物園" 這個 class 裡面我寫了兩個 function 一個是 老虎(人) {} ← 一個需要傳入<人>的 object function, 沒有 static 修飾 另一個是 static 收票員(錢) {} ← 一個傳入<錢>的 class function 所以當我在別的程式用到 動物園 裡面的 function 的時候, 我們可以 tiger_1 = new 老虎(人); ,但我們只會有一個收票員, 因為他被宣告成static。 當你的swf被 Flash Player 載入(但還沒開始執行)的時候, 他們在記憶體區塊會被分配成這樣(概念上): ┌────────────┬──────┐ │ ※老虎(人) {....} │ 位址:001 │ ├────────────┼──────┤ │ ◎收票員(錢) {....} │ 位址:002 │ └────────────┴──────┘ ※號表示載入時屬於object function的程式,◎表示載入時屬於class function的程式 然後,Flash Player 開始執行你的程式:new 了 tiger_1 這隻老虎 ┌────────────┬──────┐ │ ※老虎(人) {....} │ 位址:001 ├─┐ ├────────────┼──────┤ │ │ ◎收票員(錢) {....} │ 位址:002 │ │複製(new)一隻老虎 ├────────────┼──────┤ │ │ 老虎(人) {....} │ 位址:003 │←┘←┐ ├────────────┼──────┤ │這隻老虎的別名(reference) │ tiger_1 = 003 │ 位址:004 │───┘叫作 tiger_1 指到剛剛複製 └────────────┴──────┘ 出來的位置... 但是因為 收票員 被宣告為 class function (有加 static), 所以他在記憶體中沒辦法被複製(所以才用static這英文單字), 永遠只有一份,你可以直接使用他。 而 老虎 因為被宣告為 object function (沒有static), 所以他要被複製(new)後"才"能使用,你可以複製出很多隻老虎(同時也會花掉更多記憶體) 除了記憶體使用不一樣外,在程式中這兩種東西(有static和沒static)設計的目標用途 也有些不大一樣的。(要講這用途還要再花些時間...orz) 這樣不知道有沒有了解...好像有點講太多。XD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.166.132 ※ 編輯: dreamboxer 來自: 59.115.166.132 (07/08 01:28)
1F:推 ComicMan:大推 07/08 02:04
2F:推 zswolf:這一定要推一下~~大大推 07/08 03:12
3F:推 a149851571:哇....實在是太感謝大大了....一目了然~~ 07/08 10:00
4F:→ dreamboxer:改一下標題方便日後的人搜尋...XD 07/08 10:23
5F:推 kuwood:推圖說=w= 07/08 12:40
6F:推 kerpohpwos:最近在學Java,又看到這篇,感覺很有親切感 07/08 16:56
7F:推 starjou:所以 static class 其實在定義的時候就是一個實體 07/08 21:32
8F:→ starjou:且不用指定給變數是嗎? 07/08 21:32
9F:推 starjou:不對,我搞錯了,現在講的是 function 不是 class 07/08 21:34
10F:推 etrexetrex:正確說 static function 是 class 擁有的 function 07/08 23:02
11F:推 etrexetrex:1 個 class 可以有很多個 object(實體) 07/08 23:05
12F:→ etrexetrex:因為 static function 是 class function 所以1個就好 07/08 23:06
13F:推 osanaosana:小補充一下,可直接使用 動物園.收票員(錢) 函式 04/30 04:20
14F:→ osanaosana:不需要宣告動物園的實體 04/30 04:21







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP