AS2與AS3語法差異列表說明
在這邊我們整理最常用的語法與函式,讓您對AS2與AS3的差異有基本的瞭解,如果以後開發時有應用到的語法,是在此沒提到的,請去下列網址查詢。
http://livedocs.adobe.com/flex/3/langref/migration.html
| Actopscript 2.0 | Actopscript 3.0 | 說明 |
| call() | 此語法在AS3已移除 | ⊙在AS3要呼叫函式,直接下達函式名稱的指令即可 ⊙若您的函式宣告於Class-類別中,請以new XXX()建立實體物件的方式呼叫 ⊙在Class中的函式宣告前面加入static修飾詞,也可以讓函式成為共用函式 |
| chr() | 此語法在AS3已移除 | ⊙請用String.fromCharCode() 來替代 |
| clearInterval() | flash.utils.clearInterval() | 此函式在AS3中已經被移植到flash.utils Package中 |
| clearTimeout() | flash.utils.clearTimeout() | 此函式在AS3中已經被移植到flash.utils Package中 |
| eval() | 此語法在AS3已移除 | ⊙由於eval動態執行指令的機制,會嚴重影響AVM的執行效率,故在AS3已經被移除 ⊙若要模擬動態執行指令的機制,要透過AS3所支援Reflection的機制來著手 |
| fscommand() | flash.system.fscommand() | ⊙此函式在AS3中已經被移植到flash.system Package中 ⊙AS3也有提供flash.external.ExternalInterface 的類別服務來作為javascript跟Actionscript溝通的媒介 |
| getProperty() | 此語法在AS3已移除 | 若要存取屬性請用. (dot)符號,直接存取類別中所宣告的屬性 |
| getTimer() | flash.utils.getTimer() | 此函式在AS3中已經被移植到flash.utils Package中 |
| getURL() | flash.net.navigateToURL() | 此函是在AS3中已經被navigateToURL()取代 |
| gotoAndPlay() | flash.display.MovieClip.gotoAndPlay() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| ifFrameLoaded() | flash.display.MovieClip.framesLoaded() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| int() | int() | ⊙此函式在AS3中已經提昇為資料型態轉換的功能 ⊙可以直接將資料轉為符合AS3中Primitive的資料型態 |
| length() | String.length | ⊙此函式在AS3中可以用String.length來取代 |
| loadMovie() | flash.display.Loader | ⊙此函式在AS3中用新的Loader Class-類別所提供資料載入的機制來取代 |
| loadVariables() | flash.net.URLLoader | ⊙此函式在AS3中用新的URLLoader Class-類別所提供資料載入的機制來取代 |
| mbchr() | String.fromCharCode() | ⊙此函式在AS3中可以直接呼叫String.fromCharCode()類別靜態函式來取代 |
| mbord() | String.charCodeAt() | ⊙此函式在AS3中可以直接呼叫String.charCodeAt()類別靜態函式來取代 |
| mblength() | String.length | ⊙此函式在AS3中可以直接呼叫String.length類別靜態屬性來取代 |
| mbsubstring() | String.substr() | ⊙此函式在AS3中可以直接呼叫String.substr()類別靜態函式來取代 |
| nextFrame() | flash.display.MovieClip.nextFrame() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| nextScene() | flash.display.MovieClip.nextScene() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| on() | flash.events.EventDispatcher | ⊙此函式在AS3已移除 ⊙此函式在AS3請用flash.events Package中的相關元件取代 |
| onClipEvent() | flash.events.EventDispatcher | ⊙此函式在AS3已移除 ⊙此函式在AS3請用flash.events Package中所提供的機制取代 |
| play() | flash.display.MovieClip.play() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| parseInt() | parseInt() | |
| ord() | String | ⊙此函式在AS3已移除 ⊙請直接使用如String(“ |
| random() | Math.random() | ⊙此函式在AS3已移除 ⊙請直接使用Math.random()替代 |
| prevFrame() | flash.display.MovieClip.prevFrame() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| prevScene() | flash.display.MovieClip.prevScene() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| print() | flash.printing.PrintJob | ⊙此函式在AS3已移除 ⊙此函式在AS3請直接使用PrintJob這個類別取代 |
| removeMovieClip() | 此語法在AS3已移除 | ⊙請將參考到MovieClip實體物件的變數設成null,如此一來MovieClip實體物件就會被Garbage Collection的機制回收 |
| setProperty() | 此語法在AS3已移除 | 若要存取屬性請用.(dot)符號,直接存取類別中所宣告的屬性 |
| setInterval() | flash.utils.setInterval() | 此函式在AS3中已經被移植到flash.utils Package中 |
| setTimeout() | flash.utils.setTimeout() | 此函式在AS3中已經被移植到flash.utils Package中 |
| stop() | flash.display.MovieClip.stop() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display. MovieClip這個Class中 |
| stopAllSounds() | flash.media.SoundMixer.stopAll() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display.SoundMixer這個Class中,並以類別靜態函式的方式提供跟全域函式一樣的服務 |
| startDrag() | flash.display.Sprite.startDrag() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display.Sprite這個Class中 |
| stopDrag() | flash.display.Sprite.stopDrag() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至flash.display.Sprite這個Class中 |
| substring() | String.substring() | ⊙此函式在AS3已經不是全域函式 ⊙此函式在AS3已經被移至String這個Class中 |
| unloadMovie() | flash.display.Loader.unload() | ⊙此函式在AS3已移除 ⊙此函式在AS3中用新的Loader Class-類別所提供unLoad函式來取代 |
| _global | 此語法在AS3已移除 | ⊙請使用類別靜態方法的方式來取代全區域語法的宣告 |
| _parent | flash.display.DisplayObject.parent | ⊙此函式在AS3中用DisplayObject類別中的parent屬性來取代 |
| _root | flash.display.DisplayObject.stage | ⊙此函式在AS3中用DisplayObject類別中的stage屬性來取代 |
| scroll | flash.text.TextField | ⊙此語法在AS3已移除 ⊙請用flash.text.TextField這個Class來中的scrollH 與 scrollV這兩個屬性來取代 |
| this | this | ⊙此語法在AS3中代表紀錄本身實體物件的位址 |
| delete | delete | ⊙此語法在AS3中只能指定刪除物件中的某個屬性 |
| import | import | ⊙此語法在AS3中必須指定完整的Package與類別名稱 |
| private | private | ⊙此語法在AS3中宣告Class中屬性與函式存取限制,並進一步規範繼承母類別的子類別,也不能存取被宣告private的屬性與函式 |
| set variable | ⊙此語法在AS3已移除 | ⊙請使用=運算子取代 |
| super | super | ⊙此語法在AS3中使用必須指定更明確的函式參數 |
| Array.Array Constructor | Array.Array() | ⊙此語法在AS3中以new Array()方式呼叫 |
| Array.push() Method | Array.push() | ⊙此函式在AS3中以陣列名稱.push()方式呼叫 |
| Array.sort() Method | Array.sort() | ⊙此函式在AS3中以陣列名稱sort()方式呼叫 |
| Array.splice() Method | Array.splice() | ⊙此函式在AS3中以陣列名稱.splice()方式呼叫 |
| AsBroadcaster ._listeners Property[read-only] | flash.events.EventDispatcher.willTrigger() | ⊙此屬性在AS3中透過EventDispatcher.willTrigger()取代 |
| AsBroadcaster .addListener() Method | flash.events.EventDispatcher.addEventListener() | ⊙此函式在AS3中透過.EventDispatcher.addEventListener()取代 |
| AsBroadcaster .broadcastMessage() Method | flash.events.EventDispatcher.dispatchEvent() | ⊙此函式在AS3中透過.EventDispatcher.dispatchEvent()取代 |
| AsBroadcaster .initialize() Method | 此語法在AS3已移除 | ⊙此函式的功能在AS3中已經由新的事件模型取代,在事件模型中每個在Application都會能主動接受與傳送事件物件-event object |
| AsBroadcaster .removeListener() Method | flash.events.EventDispatcher.removeEventListener() | ⊙此函式在AS3中透過.EventDispatcher.removeEventListener()取代 |
| ExternalInterface.addCallback() Method | flash.external.ExternalInterface.addCallback() | ⊙此函式在AS3中透過flash.external.ExternalInterface.addCallback()取代 |
| ExternalInterface .call() Method | flash.external.ExternalInterface.call() | ⊙此函式在AS3中透過flash.external.ExternalInterface.call()取代 |
沒有留言:
張貼留言