2010-09-13 77 views
2

基本上,我想修改對象
類的構造函數。由於每個類都擴展了Object,我希望每當有任何類的對象被實例化時,被調用的函數將會調用
Actionscript-3原型繼承

所以我這樣做:

Object.prototype.constructor = function(){ 
      trace("it was called;"); 
     }; 

,把一個斷點跟蹤聲明。

但它並沒有停止在那裏。
trace語句也沒有得到執行。

任何解決方案/建議?

回答

0

我不認爲在AS-3中是可行的,但它是在AS-2中。

2

在哪種情況下你編碼? 如果您使用的是Flex編譯器MXMLC(默認情況下,如果您在FlashBuilder中),那麼您可以添加編譯器選項-es。這應該使AS3更像AS2和JS,並支持原型鏈繼承。

-compiler.es alias -es 

「使用ECMAScript第3版原型基於對象模型,以允許原型屬性的動態覆蓋。在內置函數原型基於對象模型被實現爲原型對象的動態屬性。(高級)」

我不知道,如果這與Adobe添加到ECMA Script標準中的所有擴展配合使用,例如包,命名空間和類。但你可以試試看。

+0

在Flex Builder中,當我添加了編譯器選項-es時,我得到了這樣一條信息:「Invalid -as3和-es combination。-as3 = true和-es = true。它們中的任何一個都可以是'true'。 – dharm0us 2010-09-14 13:57:52

+0

它們不能在編譯器級別上共存,但可以混合[using namespaces](http://stackoverflow.com/questions/2268276/what-are-the-key-differences-between-javascript-and-actionscript-3/ 12022657#12022657)。 – 2012-08-29 21:04:36