Flash ActionScript常用的開發(fā)工具介紹
根據(jù)項(xiàng)目需求和可用資源,您可能希望使用幾個(gè)工具中的一個(gè)(或結(jié)合使用多個(gè)工具)來編寫和編輯 ActionScript 代碼。以下是由陽光網(wǎng)小編整理關(guān)于Flash ActionScript常用的開發(fā)工具介紹,希望大家喜歡!
Flash ActionScript常用的開發(fā)工具
Flash 創(chuàng)作工具
除了創(chuàng)建圖形和動(dòng)畫的功能之外,Adobe Flash CS3 Professional 還包括處理 ActionScript代碼(附加到 FLA 文件中的元素的代碼,或僅包含 ActionScript 代碼的外部文件中的代碼)的工具。Flash 創(chuàng)作工具最適合于涉及大量的動(dòng)畫或視頻的項(xiàng)目,或者您希望自己創(chuàng)建大部分圖形資源的項(xiàng)目,尤其適合于用戶交互很少或者具有需要 ActionScript 的功能的項(xiàng)目。如果您希望在同一個(gè)應(yīng)用程序中既創(chuàng)建可視資源又編寫代碼,也可能會(huì)選擇使用 Flash創(chuàng)作工具來開發(fā) ActionScript 項(xiàng)目。如果您希望使用預(yù)置的用戶界面組件,但 SWF 較小或便于設(shè)置可視外觀是項(xiàng)目的主要考慮因素,那么您也可能會(huì)選擇使用 Flash 創(chuàng)作工具。
Adobe Flash CS3 Professional 包括兩個(gè)編寫 ActionScript 代碼的工具:
■ “動(dòng)作”面板:在 FLA 文件中工作時(shí)可用,該面板允許您編寫附加到時(shí)間軸上的幀的 ActionScript 代碼。
■ “腳本”窗口:“腳本”窗口是專門用于處理 ActionScript (.as) 代碼文件的文本編輯器。
Flex Builder
Adobe Flex Builder 是創(chuàng)建帶有 Flex 框架的項(xiàng)目的首選工具。除了可視布局和 MXML 編輯工具之外, Flex Builder 還包括一個(gè)功能完備的 ActionScript 編輯器,因此可用于創(chuàng)建Flex 或僅包含 ActionScript 的項(xiàng)目。Flex 應(yīng)用程序具有以下幾個(gè)優(yōu)點(diǎn):包含一組內(nèi)容豐富的預(yù)置用戶界面控件和靈活的動(dòng)態(tài)布局控件,內(nèi)置了用于處理外部數(shù)據(jù)源的機(jī)制,以及將外部數(shù)據(jù)鏈接到用戶界面元素。但由于需要額外的代碼來提供這些功能,因此 Flex 應(yīng)用程序的 SWF 文件可能比較大,并且無法像 Flash 應(yīng)用程序那樣輕松地完全重設(shè)外觀。如果希望使用 Flex 創(chuàng)建功能完善、數(shù)據(jù)驅(qū)動(dòng)且內(nèi)容豐富的 Internet 應(yīng)用程序,并在一個(gè)工具內(nèi)編輯 ActionScript 代碼,編輯 MXML 代碼,直觀地設(shè)置應(yīng)用程序布局,則應(yīng)使用 FlexBuilder。
第三方 ActionScript 編輯器
由于 ActionScript (.as) 文件存儲為簡單的文本文件,因此任何能夠編輯純文本文件的程序都可以用來編寫 ActionScript 文件。除了 Adobe 的 ActionScript 產(chǎn)品之外,還有幾個(gè)擁有特定于 ActionScript 的功能的第三方文本編輯程序。您可以使用任何文本編輯程序來編寫MXML 文件或 ActionScript 類。然后,可以使用 Flex SDK(包括 Flex 框架類和 Flex 編譯器)來基于這些文件創(chuàng)建 SWF 應(yīng)用程序(Flex 或僅包含 ActionScript 的應(yīng)用程序) ;蛘,很多開發(fā)人員也可以使用第三方 ActionScript 編輯器來編寫 ActionScript 類,并結(jié)合使用 Flash 創(chuàng)作工具來創(chuàng)建圖形內(nèi)容。
在以下情況下,您可以選擇使用第三方 ActionScript 編輯器:
■ 您希望在單獨(dú)的程序中編寫 ActionScript 代碼,而在 Flash 中設(shè)計(jì)可視元素。
■ 將某個(gè)應(yīng)用程序用于非 ActionScript 編程(例如,創(chuàng)建 HTML 頁或以其它編程語言構(gòu)建應(yīng)用程序),并希望將該應(yīng)用程序也用于 ActionScript 編碼。
■ 您希望使用 Flex SDK 而不用 Flash 和 Flex Builder 來創(chuàng)建僅包含 ActionScript 的項(xiàng)目或 Flex 項(xiàng)目。
有一些提供特定于 ActionScript 的支持的代碼編輯器值得注意,其中包括:
■ Adobe Dreamweaver® CS3
■ ASDT
■ FDT
■ FlashDevelop
■ PrimalScript
■ SE|PY
■ Xcode (帶有 ActionScript 模板和代碼提示文件)
flash ActionScript快速入門
(1)特色
ActionScript 3.0包括二部分:核心語言和Flash Player API。核心語言用于定義編程語言的基本結(jié)構(gòu), 比如聲明變量,創(chuàng)建表達(dá)式控制程序結(jié)構(gòu)和數(shù)據(jù)類型等。Flash Player API是由一系列用于實(shí)現(xiàn)特定功能的flash player類組成。
第2章 AS3.0編程語言基礎(chǔ)
(1)語法、數(shù)據(jù)、變量、運(yùn)算符和語句構(gòu)成了編程語言的基礎(chǔ)
(2)作用域
變量即使在for作用域中也不可重復(fù)
(3)默認(rèn)值
Boolean型變量的默認(rèn)值是:false。
int型變量的默認(rèn)值是:0。
Number型變量的默認(rèn)值是:NaN。
Object型變量的默認(rèn)值是:null。
String型變量的默認(rèn)值是:null。
uint型變量的默認(rèn)值是:0。
*型變量的默認(rèn)值是:undefined。
(4)兩種數(shù)據(jù)類型(注意:沒有包裝類概念)
基元型數(shù)據(jù)類型:Boolean、int、Number、String和uint。
復(fù)雜型數(shù)據(jù)類型:Array、Date、Error、Function、RegExp、XML和XMLList。
(5)數(shù)據(jù)類型檢查
它默認(rèn)的是執(zhí)行時(shí)進(jìn)行數(shù)據(jù)類型檢查。同時(shí)它也在適合使用“嚴(yán)格模式”的編譯器在編譯時(shí)執(zhí)行數(shù)據(jù)類型檢查。在使用嚴(yán)格模式的編譯器中,數(shù)據(jù)類型檢查既可以在執(zhí)行前執(zhí)行編譯器檢查,也可以在運(yùn)行時(shí)執(zhí)行運(yùn)行時(shí)檢查。在標(biāo)準(zhǔn)模式下,只支持默認(rèn)的執(zhí)行時(shí)數(shù)據(jù)類型檢查。
比如說在程序編寫過程中,要明確傳遞變量值的類型和接受參數(shù)類型相同。(嚴(yán)謹(jǐn)模式:但允許隱式轉(zhuǎn)換)
(6)*
使用*作為類型注釋與不使用類型注釋等效。從無類型屬性中讀取的表達(dá)式可視為無類型表達(dá)式。該說明符主要用于兩個(gè)方面:將數(shù)據(jù)類型檢查延緩到運(yùn)行時(shí)和將undefined存儲在屬性中
(7)
使用表達(dá)式來表達(dá)想要達(dá)到的效果,使用運(yùn)算符來進(jìn)行相關(guān)的運(yùn)算,這就是數(shù)據(jù)運(yùn)算的關(guān)鍵。
第3章 AS3.0程序設(shè)計(jì)
(1)for in /for each in
for..in和for each..in語句都可以用于循環(huán)訪問對象屬性或數(shù)組元素。下面分別使用兩種語句來訪問對象中的屬性。代碼如下所示。
//定義一個(gè)對象lzxt,并添加屬性name和age
var lzxt:Object = {name:"浪子嘯天", age:30};
//執(zhí)行遍歷操作
for (var i:String in lzxt) {
//輸出屬性名稱和屬性值
trace("for in 語句輸出:"+i + ": " + lzxt[i]);
}
//執(zhí)行for each遍歷操作
for each (var k:String in lzxt) {
//輸出屬性值
trace("for each 語句輸出:"+k);
}
第4章 函數(shù)
(1)定義
函數(shù)在程序設(shè)計(jì)的過程中,是一個(gè)革命性的創(chuàng)新。利用函數(shù)編程,可以避免冗長、雜亂的代碼;利用函數(shù)編程,可以重復(fù)利用代碼,提高程序效率;利用函數(shù)編程,可以便利的修改程序,提高編程效率。
函數(shù)(Function)的準(zhǔn)確的定義為:執(zhí)行特定任務(wù),并可以在程序中重用的代碼塊。
(2)另種
“方法”和“函數(shù)閉包”。具體是將函數(shù)稱為方法還是函數(shù)閉包,取決于定義函數(shù)的上下文。
作為閉包屬于函數(shù)類型,必須新定義后使用
(3)
在ActionScript 3.0 中,所有的參數(shù)均按引用傳遞,因?yàn)樗械闹刀即鎯閷ο;蛿?shù)據(jù)是不變的對象,按按值還是按引用的效果一樣,通?梢钥醋魇前粗祩鬟f。按值傳遞,就是指參數(shù)被傳遞給函數(shù)后,被傳遞的變量就獨(dú)立了。若在函數(shù)中改變這個(gè)變量,原變量不會(huì)發(fā)生任何的變化。
(4)默認(rèn)參數(shù)
function(參數(shù)1:參數(shù)類型=默認(rèn)值,參數(shù)2:參數(shù)類型=默認(rèn)值)
(5)arguments 對象和...(rest) 參數(shù)
arguments 對象是一個(gè)數(shù)組,其中按順序保存著傳遞給函數(shù)的所有參數(shù)?梢允褂脭(shù)組的訪問方式來訪問傳入的參數(shù)。它有一個(gè)length屬性記錄當(dāng)前傳入的參數(shù)數(shù)目;還有一個(gè)屬性callee提供對函數(shù)本身的引用,該引用可用于遞歸調(diào)用函數(shù)表達(dá)式。
...(rest)參數(shù)是ActionScript3.0引入的新參數(shù)聲明。使用該參數(shù)可指定一個(gè)自己命名的數(shù)組參數(shù)來接受任意多個(gè)以逗號分隔的參數(shù)。
第5章 事件的發(fā)送和處理
(1)改進(jìn)
對比ActionScript 2.0,ActionScript 3.0的事件處理體系具有以下幾個(gè)新特點(diǎn):
在ActionScript 3.0中,只能使用addEventListener()注冊偵聽器。
在ActionScript 3.0中,可以對屬于事件流一部分的任何對象調(diào)用addEventListener()方法。
在ActionScript 3.0中,只有函數(shù)或方法可以是事件偵聽器。
(2)Event類---事件對象
事件對象作用
一是將事件信息儲存在一組屬性中,來代表具體事件;(事件屬性:靜態(tài)方法)
二是包含一組方法,用于操作事件對象和影響事件處理系統(tǒng)的行為。(事件方法)
在Flash播放器的應(yīng)用程序接口中,有一個(gè)Event類,作為所有事件對象的基類,也就是說,程序中所發(fā)生的事件都必須是Event類或者其子類的`實(shí)例。
Event類公開的屬性有:type、cancelable、target、currentTarget、eventphase、bubles。
1.type屬性:每個(gè)事件對象都有關(guān)聯(lián)的事件類型。事件類型存儲以字符串的形式存儲在Event.type屬性中。利用事件類型,可以區(qū)分不同類型的事件。
2.cancelable屬性:事件的默認(rèn)行為是否可以被阻止由布爾值表示,并存儲在Event.cancelable屬性中。此屬性時(shí)一個(gè)布爾值,默認(rèn)為flase。這個(gè)屬性一般是和preventDefault()方法結(jié)合在一起使用的。
3.target屬性:target屬性用于存儲對事件目標(biāo)的引用。
4.其它屬性:currentTarget、eventphase和bubbles這三個(gè)屬性都是和ActionScript3的事件流機(jī)制有關(guān),在平時(shí)用到的不多。
Event類的方法有7種:clone()、toString()、stopPropogation()、stopImmediatePropogation()、preventDefault()、isDefaultPrevented()和formatToString()。這些方法的用途如下:
Event.clone()方法用于賦值Event子類實(shí)例,返回Event對象原始實(shí)例的副本。當(dāng)需要自定義Event子類時(shí),就必須要繼承Event.clone()方法,用于賦值自定義類的屬性。另外還要加上新的屬性,否則在偵聽器重寫調(diào)用時(shí),這些屬性的值會(huì)出現(xiàn)錯(cuò)誤。
Event.toString()屬性返回一個(gè)包含Event對象的所有屬性的字符串。如果要自定義事件類,那么重寫toString()方法時(shí),可以使用
formatToString()這個(gè)方法在返回的字符串中加入新的事件實(shí)例屬性。
Event.stopPropogation()方法可阻止事件對象移動(dòng)到下一個(gè)節(jié)點(diǎn),但只有在允許執(zhí)行當(dāng)前節(jié)點(diǎn)上的任何其它事件偵聽器之后才起作用。
Event.stopImmediatePropogation()方法也阻止事件對象移動(dòng)到下一個(gè)節(jié)點(diǎn),但不允許執(zhí)行當(dāng)前節(jié)點(diǎn)上的任何其它事件偵聽器。
Event.preventDefault()和Event.isDefaultPrevented()和Event.cancelable屬性結(jié)合使用,用于取消事件的默認(rèn)行為的發(fā)生。
(3)Event類的子類
Event類中的屬性無法捕獲其它事件具有的獨(dú)特的特性
ActionScript 3.0的應(yīng)用程序接口特意為這些具有顯特征的事件準(zhǔn)備了Event類的幾個(gè)子類。這些子類主要包括:
鼠標(biāo)類:MouseEvent。
鍵盤類:KeyBoardEvent。
時(shí)間類:TimerEvent。
文本類:TextEvent。
(4)事件監(jiān)聽函數(shù)
是事件的處理者,負(fù)責(zé)接受事件攜帶的信息,并在接受到該事件之后執(zhí)行事件處理函數(shù)體內(nèi)的代碼。
添加事件偵聽的過程有兩步:
第一步是創(chuàng)建一個(gè)事件偵聽函數(shù),
function 偵聽器名稱(evt:事件類型):void{…}
語法格式說明如下:
偵聽器名稱:要定義的事件偵聽器的名稱,命名需符合變量命名規(guī)則。
evt:事件偵聽器參數(shù),必需。
事件類型:Event類實(shí)例或其子類的實(shí)例。
void:返回值必須為空,不可省略。
第二步是使用addEventListener()方法在事件目標(biāo)或者任何的顯示對象上注冊偵聽器函數(shù)。
管理事件監(jiān)聽器
在ActionScript3.0中使用IEventDispatcher接口的方法來管理偵聽器函數(shù),主要用于注冊、檢查和刪除事件偵聽器。
1.注冊事件偵聽器:addEventListener()函數(shù)用來注冊事件偵聽函數(shù)。注冊偵聽器的語法格式如下:
事件發(fā)送者.addEventListener(事件類型,偵聽器);
2.刪除事件偵聽器:removeEventListener()函數(shù)用來刪除事件偵聽器函數(shù)。刪除偵聽器的語法格式如下:
事件發(fā)送者.removeEventListener(事件類型,偵聽器);
3.檢查事件偵聽器:HasEventListener()方法和willTragger()方法,都可以用來檢測當(dāng)前的事件發(fā)送者注冊了何種事件類
型的偵聽器。
檢查事件偵聽器語法格式如下:
事件發(fā)送者.hasEventListener(事件類型);
(5)事件處理類型
ActionScript3.0使用單一事件模式來管理事件,所有的事件都位于flash.events包內(nèi),其中構(gòu)建了20多個(gè)Event類的子類,用來管理相關(guān)的事件類型。
ActionScript3.0中,統(tǒng)一使用MouseEvent類來管理鼠標(biāo)事件。在使用過程中,無論是按鈕還是影片事件,統(tǒng)一使用addEventListener注冊鼠標(biāo)事件(關(guān)聯(lián)事件--發(fā)送者--處理者)。此外,若在類中定義鼠標(biāo)事件,則需要先引入(import)flash.events.MouseEvent類。
MouseEvent類定義了10中常見的鼠標(biāo)事件,具體如下:
CLICK:定義鼠標(biāo)單擊事件 DOUBLE_CLICK:定義鼠標(biāo)雙擊雙擊事件
MOUSE_DOWN:定義鼠標(biāo)按下事件 MOUSE_MOVE:定義鼠標(biāo)移動(dòng)事件
MOUSE_OUT:定義鼠標(biāo)移出事件 MOUSE_OVER:定義鼠標(biāo)移過事件
MOUSE_UP:定義鼠標(biāo)提起事件 MOUSE_WHEEL:定鼠標(biāo)滾軸滾動(dòng)觸發(fā)事件
ROLL_OUT:定義鼠標(biāo)滑入事件 ROLL_OVER:定義鼠標(biāo)滑出事件
鍵盤操作也是Flash用戶交互操作的重要事件。在ActionScript 3.0中使用KeyboardEvent類來處理鍵盤操作事件。它有兩種類型的鍵盤事件:KeyboardEvent.KEY_DOWN 和 KeyboardEvent.KEY_UP。
KeyboardEvent.KEY_DOWN:定義按下鍵盤時(shí)事件
KeyboardEvent.KEY_UP:定義松開鍵盤時(shí)事件
注意:在使用鍵盤事件時(shí),要先獲得它的焦點(diǎn),如果不想指定焦點(diǎn),可以直接把stage作為偵聽的目標(biāo)。
在ActionScript3.0中使用Timer類來取代ActionScript之前版本中的setinterval()函數(shù)。而執(zhí)行對Timer類調(diào)用的事件進(jìn)行管理的是TimerEvent事件類。要注意的是,Timer類建立的事件間隔要收到SWF文件的幀頻和Flash Player的工作環(huán)境(比如計(jì)算機(jī)的內(nèi)存的大小)的影響,會(huì)造成計(jì)算的不準(zhǔn)確。
Timer類有兩個(gè)事件,分別為:
TimerEvent.TIMER:計(jì)時(shí)事件,按照設(shè)定的事件發(fā)出。
TimerEvent.TIMER_COMPLETE:計(jì)時(shí)結(jié)束事件,當(dāng)計(jì)時(shí)結(jié)束時(shí)發(fā)出
幀循環(huán)ENTER_FRAME事件是ActionScript 3.0中動(dòng)畫編程的核心事件。該事件能夠控制代碼跟隨Flash的幀頻播放,在每次刷新屏幕時(shí)改變顯示對象。
使用該事件時(shí),需要把該事件代碼寫入事件偵聽函數(shù)中,然后在每次刷新屏幕時(shí),都會(huì)調(diào)用Event. ENTER_FRAME事件,從而實(shí)現(xiàn)動(dòng)畫效果。
【Flash ActionScript常用的開發(fā)工具介紹】相關(guān)文章:
3.如何利用Flash Builder創(chuàng)建ActionScript項(xiàng)目
4.★Flash ActionScript3.0運(yùn)算符