http://www.51xflash.com 閃客裝備
http://help.adobe.com/zh_CN/FlashLite/2.0_FlashLiteDevGuide2/WS5b3ccc516d4fbf351e63e3d118d293e4ad-7fdc.html
http://help.adobe.com/zh_CN/FlashLite/2.0_FlashLiteDevGuide2/WS5b3ccc516d4fbf351e63e3d118d293e4ad-7fdc.html
所有的回放函數(shù)都會(huì)影響影片的時(shí)間軸以及影片剪輯。但它們不會(huì)影響事件或者事件處理函數(shù)被調(diào)用的方式。比如,無論舞臺上的影片剪輯是停止還是正在播放的,它仍然會(huì)有onEnterFrame事件。
_currentframe是影片剪輯的一個(gè)重要屬性,它通常與回放函數(shù)結(jié)合使用。該屬性不能被修改(只讀),它表示播放頭當(dāng)前所在幀的編號。但是要小心,_currentframe熟悉不能是標(biāo)簽,只能是數(shù)字。
annime.onPress = function(){
if(this._currentframe==1)
this.gotoAndStop("triangle");
else
this.prevFrame();
}
_currentframe是影片剪輯的一個(gè)重要屬性,它通常與回放函數(shù)結(jié)合使用。該屬性不能被修改(只讀),它表示播放頭當(dāng)前所在幀的編號。但是要小心,_currentframe熟悉不能是標(biāo)簽,只能是數(shù)字。
annime.onPress = function(){
if(this._currentframe==1)
this.gotoAndStop("triangle");
else
this.prevFrame();
}
添加到對象(影片剪輯)的變量也可以稱為屬性。對于附加到對象的函數(shù),稱為方法。
1._alpha屬性
表示影片剪輯的透明度。
如果要在主時(shí)間軸里編寫代碼,改變舞臺上ball1的透明度,就需要限定屬性的作用域,
在主時(shí)間軸改變_alpha屬性值時(shí),使用了點(diǎn)符號。這是應(yīng)為_alpha屬性是影片剪輯的屬性,它的作用域僅限于影片剪輯。
2._x和_y屬性
1._alpha屬性
表示影片剪輯的透明度。
如果要在主時(shí)間軸里編寫代碼,改變舞臺上ball1的透明度,就需要限定屬性的作用域,
在主時(shí)間軸改變_alpha屬性值時(shí),使用了點(diǎn)符號。這是應(yīng)為_alpha屬性是影片剪輯的屬性,它的作用域僅限于影片剪輯。
2._x和_y屬性
對象添加動(dòng)作,需放在事件里面。
內(nèi)插動(dòng)畫:一個(gè)動(dòng)作只需指定起始畫面和結(jié)束畫面,中間的畫面,自動(dòng)的添加上。
內(nèi)插動(dòng)畫類型:一種為動(dòng)作,另外一種為形狀。
動(dòng)作:變形,位置,大小,一般為對象或者元件
關(guān)鍵幀:一個(gè)動(dòng)作的起始畫面,一個(gè)動(dòng)作的結(jié)束畫面.
內(nèi)插動(dòng)畫類型:一種為動(dòng)作,另外一種為形狀。
動(dòng)作:變形,位置,大小,一般為對象或者元件
關(guān)鍵幀:一個(gè)動(dòng)作的起始畫面,一個(gè)動(dòng)作的結(jié)束畫面.
Stage類的實(shí)例只有一個(gè),即常說的舞臺。當(dāng)創(chuàng)建一個(gè)Flash文檔文件時(shí),中間的白色區(qū)域就是舞臺或Stage類的實(shí)例。
Stage類屬于容器類,可以在舞臺中添加其他顯示實(shí)例。
在默認(rèn)情況下,已經(jīng)有一個(gè)顯示實(shí)例添加到舞臺中,這個(gè)顯示實(shí)例就是主時(shí)間軸。
主時(shí)間軸可以通過this關(guān)鍵字來引用這個(gè)實(shí)例。所以,當(dāng)創(chuàng)建一個(gè)Flash文檔時(shí),已經(jīng)有兩個(gè)顯示實(shí)例被創(chuàng)建出來,可以通過stage和root來引用,而且,root是在stage下.
Stage類屬于容器類,可以在舞臺中添加其他顯示實(shí)例。
在默認(rèn)情況下,已經(jīng)有一個(gè)顯示實(shí)例添加到舞臺中,這個(gè)顯示實(shí)例就是主時(shí)間軸。
主時(shí)間軸可以通過this關(guān)鍵字來引用這個(gè)實(shí)例。所以,當(dāng)創(chuàng)建一個(gè)Flash文檔時(shí),已經(jīng)有兩個(gè)顯示實(shí)例被創(chuàng)建出來,可以通過stage和root來引用,而且,root是在stage下.
setInterval()函數(shù)的作用是每隔一定時(shí)間,就調(diào)用函數(shù)。
setInterval(函數(shù)名,時(shí)間間隔,函數(shù)參數(shù));
setInterval(函數(shù)名,時(shí)間間隔,函數(shù)參數(shù));
用于創(chuàng)建影片剪輯實(shí)例的MovieClip類
//創(chuàng)建MovieClip類實(shí)例,并用mc來引用這個(gè)實(shí)例
var mc:MovieClip=new MovieClip()
影片剪輯是一個(gè)容器,也是一個(gè)對象.
按鈕是可以送指令.
//創(chuàng)建MovieClip類實(shí)例,并用mc來引用這個(gè)實(shí)例
var mc:MovieClip=new MovieClip()
影片剪輯是一個(gè)容器,也是一個(gè)對象.
按鈕是可以送指令.
ActionScript 3.0處理事件的語法如下:
發(fā)送者.addEventListener(事件名,接收者)
發(fā)送者.addEventListener(事件名,接收者)
舞臺是創(chuàng)建Flash文檔時(shí)放置圖形內(nèi)容的區(qū)域,這些圖形內(nèi)容包括矢量圖形,文本框,按鈕,導(dǎo)入的位圖圖形或視頻剪輯。Flash各種活動(dòng)都發(fā)生在舞臺上,在舞臺上看到的內(nèi)容就是導(dǎo)出的影片觀眾看到的內(nèi)容。工作區(qū)是環(huán)繞舞臺的灰色區(qū)域,可將工作區(qū)看做背景。
"按鈕"元件是由"彈起"幀,"指針經(jīng)過"幀,"按下"幀和"點(diǎn)擊"幀組成的影片剪輯。
1.創(chuàng)建一個(gè)元件
1.)文件>新建 “文檔”.執(zhí)行“插入>新建元件”命令,彈出“創(chuàng)建新元件”對話框,并設(shè)置“名稱”為“開始”,元件“類型”為“按鈕”,單機(jī)“時(shí)間軸”面板上的“彈起”狀態(tài),執(zhí)行“文件>導(dǎo)入>導(dǎo)入到舞臺”命令,將face1.png
2.)單擊“時(shí)間軸”面板上的“指針經(jīng)過”狀態(tài),按F6鍵插入關(guān)鍵幀,再按delete刪除內(nèi)容,導(dǎo)入face2.png
3.)完成按鈕3個(gè)狀態(tài),單擊“狀態(tài)欄”上的“場景1”,返回到場景編輯狀態(tài),將元件“開始”從“庫”面板中拖入到場景中并調(diào)整大小及位置.
4.)"控制>啟用簡單按鈕"
5.)執(zhí)行"文件>保存"
1.創(chuàng)建一個(gè)元件
1.)文件>新建 “文檔”.執(zhí)行“插入>新建元件”命令,彈出“創(chuàng)建新元件”對話框,并設(shè)置“名稱”為“開始”,元件“類型”為“按鈕”,單機(jī)“時(shí)間軸”面板上的“彈起”狀態(tài),執(zhí)行“文件>導(dǎo)入>導(dǎo)入到舞臺”命令,將face1.png
2.)單擊“時(shí)間軸”面板上的“指針經(jīng)過”狀態(tài),按F6鍵插入關(guān)鍵幀,再按delete刪除內(nèi)容,導(dǎo)入face2.png
3.)完成按鈕3個(gè)狀態(tài),單擊“狀態(tài)欄”上的“場景1”,返回到場景編輯狀態(tài),將元件“開始”從“庫”面板中拖入到場景中并調(diào)整大小及位置.
4.)"控制>啟用簡單按鈕"
5.)執(zhí)行"文件>保存"
ActionScript3.0中引入的Socket類,使ActionScript可以建立套接字連接,并讀取和寫入原始二進(jìn)制數(shù)據(jù)。在定義有關(guān)數(shù)據(jù)交換的操作方法時(shí),ActionScript使用了兩個(gè)接口:IDataInput接口和IDataOutput接口,分別定義數(shù)據(jù)的輸入和輸出。Socket類的設(shè)計(jì)實(shí)現(xiàn)了這兩個(gè)接口,在實(shí)現(xiàn)方法時(shí),關(guān)注二進(jìn)制數(shù)據(jù)的輸入和輸出。因此,使用Socket類與服務(wù)器的二進(jìn)制協(xié)議通訊非常輕易。
利用Socket類的構(gòu)造函數(shù)創(chuàng)建Socket對象。Socket類的構(gòu)造函數(shù)包含兩個(gè)參數(shù):
Socket(host:String=null,port:int=0)
Øhost:String(default=null)—要連接的主機(jī)的名稱。若未指定此參數(shù),將創(chuàng)建一個(gè)最初處于斷開狀態(tài)的套接字。
Øport:int(default=0)—要連接的端口號。若未指定此參數(shù),將創(chuàng)建一個(gè)最初處于斷開狀態(tài)的套接字。
假如代碼中提供了充足的參數(shù),則可以成功的建立一個(gè)打開套接字連接。該構(gòu)造函數(shù)在執(zhí)行成功時(shí),并不發(fā)送Event.COMPLETE事件,而是發(fā)送一個(gè)Event.CONNECT事件。遠(yuǎn)程網(wǎng)絡(luò)連接的情況比較多變,應(yīng)充分考慮響應(yīng)連接的異步性,在代碼中偵聽Event.CONNECT事件,并在事件的偵聽器中進(jìn)行后續(xù)的操作。
代碼中也可以使用connected屬性查詢Socket對象目前是否已連接。當(dāng)連接建立時(shí),connected屬性為true。假如套接字沒有連接,可以調(diào)用套接字對象的connect()方法,重建連接或者嘗試使用新的地址和端口號。
Socket類使用二進(jìn)制協(xié)議的服務(wù)器互操作,可以使FlashPlayer能夠連接到郵件和新聞服務(wù)器,編寫根據(jù)不同的Internet協(xié)議(例如POP3、SMTP、IMAP和NNTP)進(jìn)行交互的代碼。當(dāng)服務(wù)器的服務(wù)可用,且套接字連接建立后,就可以向緩沖區(qū)中寫入信息或者讀取信息。緩沖區(qū)的數(shù)據(jù)需要雙方配合操作。當(dāng)服務(wù)器關(guān)閉連接時(shí),F(xiàn)lashPlayer會(huì)接受到Event.CLOSE事件的通知。偵聽這個(gè)事件,避免單方操作不存在的套接字連接。
1.讀取緩沖區(qū)
讀取是最常見的操作,究竟FlashPlayer經(jīng)常是作為接受服務(wù)的一方,從遠(yuǎn)程索取數(shù)據(jù)。
在FlashPlayer中,可用的套接字讀取操作很多,常見的有:
ØreadByte():從套接字讀取一個(gè)帶符號字節(jié)。
ØreadBytes(bytes:ByteArray,offset:uint=0,length:uint=0):從套接字讀取length參數(shù)所指定的數(shù)據(jù)的字節(jié)數(shù)。
ØreadUTF():從套接字讀取一個(gè)UTF-8字符串。
ØreadUTFBytes(length:uint):從套接字讀取length參數(shù)所指定的UTF-8數(shù)據(jù)的字節(jié)數(shù),并返回一個(gè)字符串。
ØreadObject():從以AMF序列化格式編碼的套接字讀取一個(gè)對象。該參數(shù)返回一個(gè)無類型類型。寫入前可以進(jìn)行壓縮。
Socket類提供bytesAvailable參數(shù),標(biāo)記輸入緩沖區(qū)中可讀取的數(shù)據(jù)的字節(jié)數(shù)。這個(gè)參數(shù)是只讀的。對套接字輸出緩沖區(qū)中積累的所有數(shù)據(jù)進(jìn)行刷新。
2.寫入操作
對于客戶端的FlashPlayer而言,寫入套接字意味著向服務(wù)器端發(fā)送數(shù)據(jù)。write方法寫入的數(shù)據(jù)不會(huì)被立即傳送。
針對套接字的寫操作主要有:
ØwriteByte(value:int):將一個(gè)字節(jié)寫入套接字。
ØwriteBytes(bytes:ByteArray,offset:uint=0,length:uint=0):從指定的字節(jié)數(shù)組寫入一系列字節(jié)。
ØwriteUTF(value:String):將參數(shù)指定的字符串寫入緩沖。但實(shí)際上寫入的信息要更多一些。以下數(shù)據(jù)寫入套接字:一個(gè)無符號16位整數(shù),它指示了指定UTF-8字符串的長度(以字節(jié)為單位),后面跟隨字符串本身。
ØwriteObject(object:*):以AMF序列化格式將一個(gè)對象寫入套接字。
ØwriteUTFBytes(value:String):將一個(gè)UTF-8字符串寫入套接字。
這些數(shù)據(jù)在調(diào)用flush()方法之前一直被保存在隊(duì)列中。使用flush()方法,對套接字輸出緩沖區(qū)中積累的所有數(shù)據(jù)進(jìn)行刷新。
當(dāng)套接字使用完畢后,可以調(diào)用close()方法,關(guān)閉套接字連接關(guān)閉套接字。在調(diào)用close()方法時(shí)不會(huì)引發(fā)Event.CLOSE事件。
在調(diào)用close()方法之后,將無法讀取或?qū)懭肴魏螖?shù)據(jù)。但是套接字對象不會(huì)被刪除。假如需要再次進(jìn)行連接,不要重新建立套接字對象,只要直接對原有Socket對象調(diào)用connect()方法。
2Socket套接字類 套接字連接是一種持續(xù)的網(wǎng)絡(luò)連接。一般的網(wǎng)絡(luò)數(shù)據(jù)傳遞需要進(jìn)行多次,每次之間是不連續(xù)的。但是套接字連接有助于避免頻繁的詢問用戶連接。當(dāng)套接字連接建立后,客戶端和服務(wù)器之間就形成了一個(gè)臨時(shí)的雙向通道。服務(wù)器可以向客戶端傳送消息,類似于將數(shù)據(jù)包從服務(wù)器推向客戶端,而無需客戶端發(fā)出直接的請求。這是套接字連接最實(shí)用的部分。
套接字連接是一種基層的通信,但在ActionScript3.0中又分為兩大類:二進(jìn)制數(shù)據(jù)的套接字連接和XML數(shù)據(jù)的套接字連接。假如需要執(zhí)行最基層的數(shù)據(jù)傳輸,可以使用ActionScript3.0的Sockect類,該類負(fù)責(zé)二進(jìn)制數(shù)據(jù)的傳輸和讀取。假如要進(jìn)行格式化的文本數(shù)據(jù)傳輸,可以利用XML格式作為信息的格式,此時(shí)可以利用ActionScript的XMLSocket類。
利用Socket類的構(gòu)造函數(shù)創(chuàng)建Socket對象。Socket類的構(gòu)造函數(shù)包含兩個(gè)參數(shù):
Socket(host:String=null,port:int=0)
Øhost:String(default=null)—要連接的主機(jī)的名稱。若未指定此參數(shù),將創(chuàng)建一個(gè)最初處于斷開狀態(tài)的套接字。
Øport:int(default=0)—要連接的端口號。若未指定此參數(shù),將創(chuàng)建一個(gè)最初處于斷開狀態(tài)的套接字。
假如代碼中提供了充足的參數(shù),則可以成功的建立一個(gè)打開套接字連接。該構(gòu)造函數(shù)在執(zhí)行成功時(shí),并不發(fā)送Event.COMPLETE事件,而是發(fā)送一個(gè)Event.CONNECT事件。遠(yuǎn)程網(wǎng)絡(luò)連接的情況比較多變,應(yīng)充分考慮響應(yīng)連接的異步性,在代碼中偵聽Event.CONNECT事件,并在事件的偵聽器中進(jìn)行后續(xù)的操作。
代碼中也可以使用connected屬性查詢Socket對象目前是否已連接。當(dāng)連接建立時(shí),connected屬性為true。假如套接字沒有連接,可以調(diào)用套接字對象的connect()方法,重建連接或者嘗試使用新的地址和端口號。
Socket類使用二進(jìn)制協(xié)議的服務(wù)器互操作,可以使FlashPlayer能夠連接到郵件和新聞服務(wù)器,編寫根據(jù)不同的Internet協(xié)議(例如POP3、SMTP、IMAP和NNTP)進(jìn)行交互的代碼。當(dāng)服務(wù)器的服務(wù)可用,且套接字連接建立后,就可以向緩沖區(qū)中寫入信息或者讀取信息。緩沖區(qū)的數(shù)據(jù)需要雙方配合操作。當(dāng)服務(wù)器關(guān)閉連接時(shí),F(xiàn)lashPlayer會(huì)接受到Event.CLOSE事件的通知。偵聽這個(gè)事件,避免單方操作不存在的套接字連接。
1.讀取緩沖區(qū)
讀取是最常見的操作,究竟FlashPlayer經(jīng)常是作為接受服務(wù)的一方,從遠(yuǎn)程索取數(shù)據(jù)。
在FlashPlayer中,可用的套接字讀取操作很多,常見的有:
ØreadByte():從套接字讀取一個(gè)帶符號字節(jié)。
ØreadBytes(bytes:ByteArray,offset:uint=0,length:uint=0):從套接字讀取length參數(shù)所指定的數(shù)據(jù)的字節(jié)數(shù)。
ØreadUTF():從套接字讀取一個(gè)UTF-8字符串。
ØreadUTFBytes(length:uint):從套接字讀取length參數(shù)所指定的UTF-8數(shù)據(jù)的字節(jié)數(shù),并返回一個(gè)字符串。
ØreadObject():從以AMF序列化格式編碼的套接字讀取一個(gè)對象。該參數(shù)返回一個(gè)無類型類型。寫入前可以進(jìn)行壓縮。
Socket類提供bytesAvailable參數(shù),標(biāo)記輸入緩沖區(qū)中可讀取的數(shù)據(jù)的字節(jié)數(shù)。這個(gè)參數(shù)是只讀的。對套接字輸出緩沖區(qū)中積累的所有數(shù)據(jù)進(jìn)行刷新。
2.寫入操作
對于客戶端的FlashPlayer而言,寫入套接字意味著向服務(wù)器端發(fā)送數(shù)據(jù)。write方法寫入的數(shù)據(jù)不會(huì)被立即傳送。
針對套接字的寫操作主要有:
ØwriteByte(value:int):將一個(gè)字節(jié)寫入套接字。
ØwriteBytes(bytes:ByteArray,offset:uint=0,length:uint=0):從指定的字節(jié)數(shù)組寫入一系列字節(jié)。
ØwriteUTF(value:String):將參數(shù)指定的字符串寫入緩沖。但實(shí)際上寫入的信息要更多一些。以下數(shù)據(jù)寫入套接字:一個(gè)無符號16位整數(shù),它指示了指定UTF-8字符串的長度(以字節(jié)為單位),后面跟隨字符串本身。
ØwriteObject(object:*):以AMF序列化格式將一個(gè)對象寫入套接字。
ØwriteUTFBytes(value:String):將一個(gè)UTF-8字符串寫入套接字。
這些數(shù)據(jù)在調(diào)用flush()方法之前一直被保存在隊(duì)列中。使用flush()方法,對套接字輸出緩沖區(qū)中積累的所有數(shù)據(jù)進(jìn)行刷新。
當(dāng)套接字使用完畢后,可以調(diào)用close()方法,關(guān)閉套接字連接關(guān)閉套接字。在調(diào)用close()方法時(shí)不會(huì)引發(fā)Event.CLOSE事件。
在調(diào)用close()方法之后,將無法讀取或?qū)懭肴魏螖?shù)據(jù)。但是套接字對象不會(huì)被刪除。假如需要再次進(jìn)行連接,不要重新建立套接字對象,只要直接對原有Socket對象調(diào)用connect()方法。
2Socket套接字類 套接字連接是一種持續(xù)的網(wǎng)絡(luò)連接。一般的網(wǎng)絡(luò)數(shù)據(jù)傳遞需要進(jìn)行多次,每次之間是不連續(xù)的。但是套接字連接有助于避免頻繁的詢問用戶連接。當(dāng)套接字連接建立后,客戶端和服務(wù)器之間就形成了一個(gè)臨時(shí)的雙向通道。服務(wù)器可以向客戶端傳送消息,類似于將數(shù)據(jù)包從服務(wù)器推向客戶端,而無需客戶端發(fā)出直接的請求。這是套接字連接最實(shí)用的部分。
套接字連接是一種基層的通信,但在ActionScript3.0中又分為兩大類:二進(jìn)制數(shù)據(jù)的套接字連接和XML數(shù)據(jù)的套接字連接。假如需要執(zhí)行最基層的數(shù)據(jù)傳輸,可以使用ActionScript3.0的Sockect類,該類負(fù)責(zé)二進(jìn)制數(shù)據(jù)的傳輸和讀取。假如要進(jìn)行格式化的文本數(shù)據(jù)傳輸,可以利用XML格式作為信息的格式,此時(shí)可以利用ActionScript的XMLSocket類。