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