|
主题: 地狱天堂请进(关于类的扩展)!
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
#12004/4/2 12:58:31
你好,想问一个问题: 在2004中,如何为Flash的内置类进行扩展? 比如针对Math类扩展一个角度换算弧度的方法? 在MX中,下面的写法是正确的 Math.hudu=function(angle){ return angle*Math.PI/180; }; 可以trace(Math.hudu(90)); 而2004中就不可以了,为什么?如何改? 谢谢!
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
|
#22004/4/2 14:28:22
AS2的写法应该 class hudu extends Math { ... }
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
#32004/4/2 15:45:57
我看到过用class关键字为MC类进行扩展的例子,但Math类是核心类,它不需要实例化就可以直接用?针对它怎么扩展,还望斑竹指点。
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
#42004/4/5 13:00:52
好冷清啊,哪位帮帮忙啊,自己顶顶!
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
|
#62004/4/5 15:46:10
看不到,不过我看HELP已经知道了。随便写了一个测试,的确和MX有些不一样。 function ko(){ trace ("test"); } MovieClip.prototype.addProperty("maxX", ko, null); _root.createEmptyMovieClip("a",10); a.maxX;
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
#72004/4/6 11:52:20
给MC类添加的方法如此,但对Math类呢?MC类需要实例化,而Math类不需要啊,我们可以a.maxX,但如何Math.hudu()呢????
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
|
#82004/4/7 9:03:38
不好意思,忘了是Math类了。 Math类比较特殊,现在我也不太明白到底是怎么回事,有待继续研究。
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
|
#102004/4/7 10:43:29
打听了下,大概明白了。应该是这样: Math是对象,而不是类,所以不能继承,也不能扩展方法(AS2.0) 至于1.0因该是不规范的原因,所以可以添加方法。所以在2.0中 ,类似以下代码
class ko extends Math{ function test(a:Number):Number{ var d=int(a*10); return d; } } 是不能继承Math的方法的。
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
#112004/4/7 11:46:28
不会吧,呵呵 首先,Math肯定是一个类,而且是Flash内置类中的核心类。 其次,对象应该是类实例化的产物,不能等同与类。只不过Math类是一个比较特殊的类,它不需要构造函数实例化就可以直接调用其属性和方法。
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
|
#122004/4/7 13:50:22
Math的确是个类。现在的结果是能继承Math了。至于为什么要加个Math 在前面,也说不清楚,是goldgoat无意中试出来的 -_-!
class TestMath extends Math{ public static function sin(angle:Number):Number{ return 100; } }
Math trace(TestMath.sin(100)); trace(TestMath.cos(100));
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
#132004/4/8 10:41:39
哈哈,太莫名其妙了!谢谢斑竹和goldgoat的指点!
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
#142004/4/8 10:56:16
好象前边调用过一次Math类就可以了,是不是要把Math类读进内存啊?晕啊
|
 coldstarer
职务:普通成员
等级:1
金币:2.0
发贴:296
|
|