在這邊我們希望能整理許多在 RIA 與 Android 開發程式的經驗,希望對大家會有幫助。

2009年7月22日 星期三

透視Flex範例事典內容摘要-AS2與AS3語法差異列表說明

AS2AS3語法差異列表說明

在這邊我們整理最常用的語法與函式,讓您對AS2AS3的差異有基本的瞭解,如果以後開發時有應用到的語法,是在此沒提到的,請去下列網址查詢。

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 的類別服務來作為javascriptActionscript溝通的媒介

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中已經提昇為資料型態轉換的功能

⊙可以直接將資料轉為符合AS3Primitive的資料型態

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(“100”)的語法轉換

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()取代

追蹤者