ActionScript3.0基礎教程
要使用ActionScript3.0,就要好好學習它的基礎教程。下面是陽光網小編給大家整理的ActionScript3.0基礎教程,供大家參閱!
ActionScript3.0基礎教程:使用函數和方法
as中的函數和方法在極大程度上是相同。都是只有在調用它們的時候才會執行其包含的功能。與變量一樣,函數也只需寫(或聲明)一次,之后可以多次調用(或重用)。
3.1 方法與函數
函數的概念:執行特定任務并可以在程序中重用的代碼塊。
方法與函數的區別是方法與一個特定的類關聯(類的對象可以執行的任務),函數是用戶定義在時間軸上的代碼塊,或自定義類的一部分的(也變成了那個自定義類的方法)。
3.1.1 方法
方法是寫在類中的函數。當對象需要去執行計算,改變一個屬性,返回一個值,或執行任何事先預定的動作時,它們就準備好被調回了。
方法繼承
類的方法可以從其他類繼承,在類之間創建了邏輯鏈,從而最小化了功能的重復。同時削減了文件大小和重復的功能也是提高效率的體現。
每個外部as文件都定義了一個類所消耗的文件大小和CPU資源。
3.1.2 函數
函數是用戶為了把一個應用程序的所有功能“縫合”在一起,而定義的代碼容器。
面向對象編程需要使用很多事先定義好的只維護自身的對象。你需要做的就是在你需要的時候給他們傳遞指令使他們執行某些任務。換句話說,函數就是為解決某些需要而封裝的指令集。
3.1.3 定義函數
1.function functionName(參數1,參數2,…){
//函數執行的動作
}
2.var 函數名:Function=function(參數1,參數2,…){
//執行語句塊
}
函數的命名規則與變量的命名規則是一樣的。
3.1.4 使用函數的參數
方法或函數調用時他們都可以接受傳遞進來的參數值。
3.2 從函數中返回值
函數既可以接受參數值,也可以給予反饋。函數的一個實際好處是可以重用一般功能的代碼。
設置函數的返回值
創建的函數有返回值是,as允許嚴格的函數返回值類型。
不給返回類型函數返回任何值,只要將void作為函數的返回類型。
好的習慣是給你的函數一個返回類型,無論他們是否真的返回值。
Exam:
var js:number;
function init(cs:Number){return cs=1;}
trace(init(js));//1
嵌套函數:function dj():String{
function dy():String{return "Hello"}
return dy()
}
3.3 函數作用域
作用域在as中表示變量或對象的位置和所有關系。變量或對象在哪創建就可以在哪訪問,這就是它的作用域或位置。在代碼主要部分聲明的變量(時間軸上),就是時間軸變量,作用域在時間軸代碼上。本地變量是指在函數中創建的變量,它的作用域只在他的函數里。
對于函數來說,無論函數里發生什么,就讓它留在函數里吧。
在as中要時常注意在哪放東西。在代碼中編譯錯誤和功能沒有執行作用域問題可能是最大的'原因。
想訪問和修改全局作用域中變量的值,只要在函數中調用它,并給他賦予一個新值就可以了。前提是函數中沒有一個和他同名的變量。
var sum:Number=50;
function addNumber(pNum1:Number,pNum2:Number):void{
sum=pNum1+pNum2;
}
addNumber(10,10);
ActionScript3.0基礎教程:使用類和對象
在as中任何東西都是對象
4.1 定義類和對象
類相當于對象的藍圖。定義了該對象的所有內容:看似如何,行為如何,做什么,處理什么數據以及如何創建。
對象是類的實例,或者是對象藍圖的副本。在類的對象被實例化后,就可以按照你的意愿訪問它的公用屬性,事件和方法來操作對象了。
類的層次涉及對類的劃分。類其實是一些定義對象外部的as文件。
導入一個具體的類,必須知道他在目錄或者說類包的路徑。
如import flash.display.MovieClip;
類的繼承 一般情況下,包中深層的子類繼承父類的核心功能。
4.2 導入類
在構造對象之前必須導入類。在將類導入到代碼之后,就可以直接使用類名了。如果沒有導入,引用類必須使用包含路徑的完整類名。
var mc:MovieClip=new flash.display.MovieClip();
PS:所有基于時間軸編寫的代碼可以不用導入類(Flash會自動完成)
4.3 實例化對象
實例化一個對象是指用as構造一個類的實例作為對象。不管對象是用來顯示還是管理數據,實例化的方式總是一樣的:var objectName:ClassType=new ClassType();
4.3.1 對象方法
方法是定義在類中的函數。類的方法就是對象執行的行為。可以傳遞參數、返回值。方法需要在類的對象實例化后調用。
4.3.2 對象屬性
屬性是實例的變量。他們保存了對象物理上、邏輯上的特性,比如位置(x、y)、尺寸(width、height、scaleX,scaleY)以及幕后使用到的各種值。
4.3.3 對象實例的數據類型
與變量一樣,對象實例的變量也有數據類型。若實例化錯對象類型,也將會導致編譯錯誤。
定義的對象實例數據類型總是要和類名一致。
4.4 使用外部代碼
使用外部文件,然后將其加入或者導入到應用程序中,有很多好處。
可以在flash和編輯器(使用一個獨立的as編輯器)之間做一些分離,所有的代碼能同時顯示在不同的地方。
當多位開發者面對同一個程序的不同之處時是一個不錯的選擇。
體會基于類編程的第一步
很多開發者不喜歡flash中的as面板,更喜歡第三方as編輯器。
第三方as編輯器:FlashDevelop(www.flashdevelop.org)
primalscript(www.primalscript.com):多語言編輯器
TextMate(www.macromates.com),只能用于蘋果機
Eclipse 一個開源的開發平臺
工作于外部的as文件時,你寫的代碼和在flash中基于幀的完全一樣。唯一的不同就是as是在一個外部的.as文件中。在flash文件被編譯時,外部的.as文件被加入到flash中。加入一個外部的.as
文件到flash應用程序中和創建一個外部類不是一回事。
添加外部的.as文件,使用include
ActionScript3.0基礎教程:顯示列表和對象
flash平臺應用程序主要用于顯示圖形和信息。as的底層處理了如何存儲圖形信息以及如何顯示他們。as3.0是flash顯示可視對象的方式。可視對象或顯示對象通過顯示列表添加到舞臺上(可視的)。顯示列表管理著顯示對象的層級,并且顯示對象本身也是可見元素。這種方法在編程中稱為顯示編程。
5.1 顯示列表
DisplayList像一個樹形結構將顯示對象放置在舞臺上。也可以用as在運行時將對象添加到顯示列表中。在創建第一個程序時,stage就是主容器,在主容器中的所有顯示對象都會被顯示。隨后,任何在該舞臺上的顯示對象都有能力作為容器讓其他對象有他們自己的顯示列表,來管理他們的子顯示對象。
顯示對象在顯示列表中的位置決定了他們的位置。顯示對象是基于一個以添加順序為層級的堆順序,堆順序或顯示對象的深度定義了他們應該出現在上邊還是當重疊時顯示在另一個可視對象的下邊。
5.2 顯示類和對象
可以使用as在運行時創建顯示對象,或者在創作時添加到舞臺上。無論哪種方法,他們都是派生于DisplayObject,InteractiveObject或DisplayObjectContainer類。
5.2.1 顯示對象
DisplayObject類被用來定義只做顯示目的的顯示對象(沒有交互和時間軸)。DisplayObject類定義了所有其他顯示對象的核心功能。這個類也可稱為父類。編程術語中父類的意思是有其他類是派生于這個類的。
DisplayObject類的屬性,事件和方法
屬性 x y widht height scaleX scaleY alpha filters mask
方法 hitTestObject() globalToLocal() getBounds() getRect()
事件 addedToStage enterFrame removedFromStage
所有可視對象的核心都是DisplayObject。DisplayObject類可以看做顯示對象演變鏈上的第一"dna紐帶"。
所有DisplayObject類的子類繼承了DisplayObject類中定義的功能。繼承類的意思是出于某些目的使用父類作為基礎并自定義類添加其他功能。
DisplayObject類的子類
Bitmap 處理外部加載或由as創建的位圖圖像
Shape 創建矢量圖像,以及使用數學函數和as的復雜形狀
InteractiveObject 為對象定義交互的功能
Video 用于顯示視頻文件
StaticText 只可以用于處理在創建時使用文本工具創建的文本。不可以使用as創建和操作。但還是有類驅動的
MorphShape 只可以在運行時創建形狀時創建過渡
5.2.2 交互對象
InteractiveObject類繼承了DisplayObject父類
InteractiveObject類是所有可以用戶交互的核心類,包括鍵盤輸入和鼠標交互。
InteractiveObject類的屬性,事件和方法
屬性 contextMenu mouseEnabled doubleClickEnabled
方法 Interactive()
事件 click keyDown keyup mouseDown mouseOver mouseOut mouseUp mouseWheel rollOver
InteractiveObject的子類
DisplayObjectContainer 定義一個擁有用于嵌套對象的顯示列表對象。
SimpleButton 程序中所有按鈕的實例
TextField 使用as控制和操作的輸出和輸入文本
PS:讓鏈接標識符和庫元件同名是個很好的習慣。這樣可以在庫中很容易找到對象,當使用as控制它的時候只要看庫中現實的名字就可以了。
在將對象添加到顯示列表前設置對象的屬性是一個很好的習慣。這樣可以確保對象在應用程序中顯示之前已經做好準備了。
5.2.3 顯示對象容器
DisplayObjectContainer類繼承了InteractiveObject類和它的DisplayOBjectL父類
DisplayObjectContainer類定義了作為其他對象容器的對象。這些對象構成了容器,將所有對象包含在他們自己的顯示列表層級中。
DisplayObjectContainer類的屬性、方法和事件
屬性 mouseChildren numChildren tabChildren textSnapshot
方法 addChild() getChildAt() removeChild() swapChildren()
事件 added addedToStage enterFrame removed removedFromStage render
DisplayObjectContainer類的子類
Loader 加載外部SWF和圖像(JPG,PNG,GIF)
Sprite 將圖形作為子對象包含
Stage 用于顯示對象的整個畫布
5.2.4 MovieClip類
MovieClip類繼承Sprite和DisplayObjectContainer類
MovieClip類和Sprite類相同,只是MovieClip類多了一個可以做逐幀效果或功能的時間軸(或播放頭)
所有DisplayObjectContainer類的子類都想舞臺一樣有他們自己的顯示列表。
【ActionScript3.0基礎教程】相關文章: