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灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP