一、 影片控制
1. gotoAndPlay
可用性 Flash 2 。用法 gotoAndPlay( scene, frame ) 參數(shù) scene 播放頭將轉到的場景的名稱。 frame
播放頭將轉到的幀的編號或標簽。返回無。說明動作;將播放頭轉到場景中指定的幀并從該幀開始播放。如果未指定場景,則播放頭將轉到當前場景中的指定幀。示例當用戶點擊
gotoAndPlay 動作所分配到的按鈕時,播放頭將轉到第 16 幀并開始播放。 on(release) { gotoAndPlay(16); }
2. gotoAndStop
可用性 Flash 2 。用法 gotoAndStop( scene, frame ) 參數(shù) scene 播放頭將轉到的場景的名稱。 frame
播放頭將轉到的幀的編號或標簽。返回無。說明動作;將播放頭轉到場景中指定的幀并停止播放。如果未指定場景,則播放頭將轉到當前場景中的幀。示例當用戶點擊
gotoAndStop 動作所分配到的按鈕時,播放頭將轉到第 5 幀并且影片停止播放。 on(release) { gotoAndStop(5);
}
3. nextFrame
可用性 Flash 2 。用法 nextFrame()
參數(shù)無。返回無。說明動作;將播放頭移到下一幀并停止。示例在這個示例中,當用戶點擊此按鈕時,播放頭轉到下一幀并停下來。 on (release) {
nextFrame(); }
4. nextScene
可用性 Flash 2 。用法 nextScene()
參數(shù)無。返回無。說明動作;將播放頭移到下一場景的第一幀并停止。示例在這個示例中,當用戶釋放此按鈕時,播放頭被移到下一場景的第一幀。
on(release) { nextScene(); } 另請參見 prevScene
5. on
可用性 Flash 2 。在 Flash 2 中,不是所有的事件都受支持。用法 on( mouseEvent ) { statement(s); }
參數(shù) statement(s) 發(fā)生 mouseEvent 時要執(zhí)行的指令。 mouseEvent
是稱作“事件”的觸發(fā)器。當發(fā)生此事件時,執(zhí)行事件后面花括號中的語句??梢詾?mouseEvent 參數(shù)指定下面的任何值: - press
在鼠標指針經(jīng)過按鈕時按下鼠標按鈕。 - release 在鼠標指針經(jīng)過按鈕時釋放鼠標按鈕。 - releaseOutside
當鼠標指針在按鈕之內(nèi)時按下按鈕后,將鼠標指針移到按鈕之外,此時釋放鼠標按鈕。 - rollOut 鼠標指針滑出按鈕區(qū)域。 - rollOver
鼠標指針滑過按鈕。 - dragOut 在鼠標指針滑過按鈕時按下鼠標按鈕,然后滑出此按鈕區(qū)域。 - dragOver
在鼠標指針滑過按鈕時按下鼠標按鈕,然后滑出此按鈕,再滑回此按鈕。 - keyPress ( “ key ” ) 按下指定的 key 。此參數(shù)的
key 部分可使用 《 使用 Flash》 的“附錄 B ”“鍵盤鍵和鍵控代碼值”中所列的任何鍵控代碼進行指定,或者使用 Key
對象的屬性摘要中列出的任何鍵常量進行指定。說明事件處理函數(shù);指定觸發(fā)動作的鼠標事件或者按鍵事件。示例在下面的腳本中,當按下鼠標按鈕時,執(zhí)行
startDrag 動作,當釋放鼠標按鈕時,執(zhí)行條件腳本,并放下該對象。 on(press) { startDrag("rabbit"); }
on(release) { trace(_root.rabbit._y); trace(_root.rabbit._x); stopDrag();
} 另請參見 onClipEvent
6. play
可用性 Flash 2 。用法 play() 參數(shù)無。返回無。說明動作;在時間軸中向前移動播放頭。示例下面的代碼使用 if
語句檢查用戶輸入的名稱值。如果用戶輸入 Steve ,則調(diào)用 play 動作,而且播放頭在時間軸中向前移動。如果用戶輸入 Steve
以外的任何其他內(nèi)容,則不播放影片,而顯示帶有變量名 alert 的文本字段。 stop(); if (name == "Steve") {
play(); } else { alert="You are not Steve!"; }
7. prevFrame
可用性 Flash 2 。用法 prevFrame()
參數(shù)無。返回無。說明動作;將播放頭移到上一幀并停止。如果當前在第一幀,則播放頭不移動。示例當用戶點擊附加了以下處理函數(shù)的按鈕時,播放頭移到上一幀。
on(release) { prevFrame(); } 另請參見
8. prevScene
可用性 Flash 2 。用法 prevScene() 參數(shù)無。返回無。說明動作;將播放頭移到前一場景的第一幀并停止。另請參見 nextScene
9. Stop
可用性 Flash 2 。用法 stop 參數(shù)無。返回無。說明動作;停止當前正在播放的影片。此動作最通常的用法是用按鈕控制影片剪輯。
10. stopAllSounds
可用性 Flash Player 3 。用法 stopAllSounds()
參數(shù)無。返回無。說明動作;在不停止播放頭的情況下停止影片中當前正在播放的所有聲音。設置到流的聲音在播放頭移過它們所在的幀時將恢復播放。示例下面的代碼可以應用到一個按鈕,這樣當單擊此按鈕時,將停止影片中所有的聲音。
on(release) { stopAllSounds(); } 二. 瀏覽器/網(wǎng)絡 : 控制 Web 瀏覽器和網(wǎng)絡的動作(一)
1. fscommand
可用性 Flash Player 3 。用法 fscommand(" command ", " parameters ") 參數(shù) command
一個傳遞給宿主應用程序用于任何用途的字符串;或者一個傳遞給獨立 Flash Player
的命令。一個傳遞給宿主應用程序用于任何用途的字符串;或者一個傳遞給 Flash Player 的值。返回無。說明動作;使 Flash 影片能夠與
Flash Player 或承載 Flash Player 的程序(如 Web 瀏覽器)進行通訊。還可使用 fscommand 動作將消息傳遞給
Macromedia Director ,或者傳遞給 Visual Basic 、 Visual C++ 和其他可承載 ActiveX
控件的程序。用法 1 :若要將消息發(fā)送給 Flash Player ,必須使用預定義的命令和參數(shù)。用法 2 :若要在 Web 瀏覽器中使用
fscommand 動作將消息發(fā)送到腳本撰寫語言(如 JavaScript ),可以在 command 和 parameters
參數(shù)中傳遞任意兩個參數(shù)。這些參數(shù)可以是字符串或表達式,在“捕捉”或處理 fscommand 動作的 JavaScript 函數(shù)中使用這些參數(shù)。在
Web 瀏覽器中, fscommand 動作在包含 Flash 影片的 HTML 頁中調(diào)用 JavaScript 函數(shù)
moviename_DoFScommand 。 moviename 是 Flash Player 影片的名稱,該名稱由 EMBED 標簽的 NAME
屬性指定,或由 OBJECT 標簽的 ID 屬性指定。如果為 Flash Player 影片分配名稱 myMovie ,則調(diào)用的
JavaScript 函數(shù)為 myMovie_DoFScommand 。用法 3 : fscommand 動作可將消息發(fā)送給 Macromedia
Director , Lingo 將消息解釋為字符串、事件或可執(zhí)行的 Lingo 代碼。如果該消息為字符串或事件,則必須編寫 Lingo 代碼以便從
fscommand 動作接收該消息,并在 Director 中執(zhí)行動作。有關更多信息,請訪問“ Director 支持中心” (Director
Support Center) 。用法 4 :在 Visual Basic 、 Visual C++ 和可承載 ActiveX 控件的其他程序中,
fscommand 利用可在環(huán)境的編程語言中處理的兩個字符串發(fā)送 VB 事件。有關更多信息,請使用關鍵字 Flash method 搜索 Flash
支持中心 (Flash Support Center) 。示例用法 1 :在下面的示例中, fscommand 動作設置 Flash Player
,以便在釋放按鈕時,將影片縮放到整個顯示器屏幕大小。 on(release){ fscommand("fullscreen", true); }
用法 2 :下面的示例使用應用到 Flash 中按鈕的 fscommand 動作打開 HTML 頁中的 JavaScript 消息框。消息本身作為
fscommand 參數(shù)發(fā)送到 JavaScript 。必須將一個函數(shù)添加到包含 Flash 影片的 HTML 頁。此函數(shù) myMovie
_DoFSCommand 位于 HTML 頁中,等待Flash 中的 fscommand 動作。當在 Flash 中觸發(fā) fscommand
后(例如,當用戶按下按鈕時), command 和 parameter 字符串被傳遞到 myMovie _DoFSCommand 函數(shù)。可以在
JavaScript 或 VBScript 代碼中以任何需要的方式使用所傳遞的字符串。在此示例中,該函數(shù)包含一個條件 if
語句,該語句檢查命令字符串是否為“ messagebox ”。如果是,則 JavaScript 警告框(或“ messagebox ”)打開并顯示
parameters 字符串的內(nèi)容。 function myMovie_DoFSCommand(command, args) { if
(command == "messagebox") { alert(args); } } 在 Flash 文檔中,將 fscommand
動作添加到按鈕: fscommand("messagebox", "This is a message box called from within
Flash.") 也可以為 fscommand 動作和參數(shù)使用表達式,如下面的示例所示: fscommand("messagebox",
"Hello, " + name + ", welcome to our Web site!") 若要測試影片,請選擇“文件” > “發(fā)布預覽” >
“ HTML ”。如果在 HTML “發(fā)布設置”中使用具有 FSCommand 模板的 Flash 發(fā)布影片,則自動插入
myMovie_DoFSCommand 函數(shù)。該影片的 NAME 和 ID 屬性將是其文件名。例如,對于文件 myMovie.fla
,該屬性將設置為 myMovie 。
2. getURL
可用性 Flash 2 。 GET 和 POST 選項僅適用于 Flash Player 4 和 Player 的更高版本。用法
getURL(url [, window [, "variables"]]) 參數(shù) url 可從該處獲取文檔的 URL 。 window
一個可選參數(shù),指定文檔應加載到其中的窗口或 HTML 框架。您可輸入特定窗口的名稱,或從下面的保留目標名稱中選擇: - _self
指定當前窗口中的當前框架。 - _blank 指定一個新窗口。 - _parent 指定當前框架的父級。 - _top 指定當前窗口中的頂級框架。
variables 用于發(fā)送變量的 GET 或 POST 方法。如果沒有變量,則省略此參數(shù)。 GET 方法將變量追加到 URL
的末尾,該方法用于發(fā)送少量變量。 POST 方法在單獨的 HTTP 標頭中發(fā)送變量,該方法用于發(fā)送長的變量字符串。返回無。說明動作;將來自特定
URL 的文檔加載到窗口中,或?qū)⒆兞總鬟f到位于所定義 URL 的另一個應用程序。若要測試此動作,請確保要加載的文件位于指定的位置。若要使用絕對
URL (例如,
http://www.myserver.com ),則需要網(wǎng)絡連接。示例此示例將一個新 URL 加載到空瀏覽器窗口中。
getURL 動作將變量 incomingAd 作為 url 參數(shù)的目標,這樣您無需編輯 Flash 影片即可更改加載的 URL
。在這之前,在影片中使用 loadVariables 動作將 incomingAd 變量的值傳遞到 Flash 中。 on(release) {
getURL(incomingAd, "_blank"); } 另請參見 loadVariables XML.send
XML.sendAndLoad XMLSocket.send -- 二.瀏覽器/網(wǎng)絡 : 控制 Web 瀏覽器和網(wǎng)絡的動作 (二)
3. loadMovie
可用性 Flash Player 3 。用法 loadMovie(" url ", level / target [, variables ])
參數(shù) url 要加載的 文件或 JPEG 文件的絕對或相對 URL 。相對路徑必須相對于級別 0 處的 文件。該 URL 必須與影片當前駐留的
URL 在同一子域。為了在 Flash Player 中使用 文件或在 Flash 創(chuàng)作應用程序的測試模式下測試 文件,必須將所有的
文件存儲在同一文件夾中,而且其文件名不能包含文件夾或磁盤驅(qū)動器說明。 target
指向目標影片剪輯的路徑。目標影片剪輯將替換為加載的影片或圖像。只能指定 target 影片剪輯或目標影片的 level
這兩者之一;而不能同時指定兩者。 level 一個整數(shù),指定 Flash Player
中影片將被加載到的級別。在將影片或圖像加載到級別時,標準模式下“動作”面板中的 loadMovie 動作將切換為 loadMovieNum
;在專家模式下,您必須指定 loadMovieNum 或從“動作”工具箱中選擇它。 variables 一個可選參數(shù),指定發(fā)送變量所使用的 HTTP
方法。該參數(shù)須是字符串 GET 或 POST 。如沒有要發(fā)送的變量,則省略此參數(shù)。 GET 方法將變量追加到 URL
的末尾,該方法用于發(fā)送少量變量。 POST 方法在單獨的 HTTP
標頭中發(fā)送變量,該方法用于發(fā)送長的變量字符串。返回無。說明動作;在播放原始影片的同時將 或 JPEG 文件加載到 Flash Player 中。
loadMovie 動作使您可以同時顯示幾個影片,并且無需加載另一個 HTML 文檔就可在影片之間切換。如果不使用 loadMovie 動作,則
Flash Player 顯示單個影片( 文件),然后關閉。當使用 loadMovie 動作時,必須指定 Flash Player
中影片將加載到的級別或目標影片剪輯。如果指定級別,則該動作變成 loadMovieNum
。如果影片加載到目標影片剪輯,則可使用該影片剪輯的目標路徑來定位加載的影片。加載到目標的影片或圖像會繼承目標影片剪輯的位置、旋轉和縮放屬性。加載的圖像或影片的左上角與目標影片剪輯的注冊點對齊。另一種情況是,如果目標為
_root 時間軸,則該圖像或影片的左上角與舞臺的左上角對齊。使用 unloadMovie 動作可刪除使用 loadMovie
動作加載的影片。示例下面的 loadMovie 語句附加到標簽為 Products 的導航按鈕。在舞臺上有一個實例名稱為 dropZone
的不可見影片剪輯。 loadMovie 動作使用此影片剪輯作為目標參數(shù)將 文件形式的產(chǎn)品加載到舞臺上的正確位置。 on(release) {
loadMovie("products",_root.dropZone); }下面的示例從目錄中加載一個 JPEG 圖像,該目錄與調(diào)用
loadMovie 動作的 文件的目錄相同: loadMovie("image45.jpeg", "ourMovieClip"); 另請參見
loadMovieNum unloadMovie unloadMovieNum _level
4. loadMovieNum 可用性 Flash Player 4 。用 Flash 5 打開的 Flash 4 文件將進行轉換,以使用正確的語法。用法
loadMovieNum(" url ", level [, variables ]) 參數(shù) url 要加載的 或 JPEG 文件的絕對或相對
URL 。相對路徑必須相對于級別 0 處的 文件。該 URL 必須與影片當前駐留的 URL 在同一子域。為了在獨立的 Flash Player
中使用 文件或在 Flash 創(chuàng)作應用程序的測試影片模式下測試 文件,必須將所有的
文件存儲在同一文件夾中,并且其文件名不能包含文件夾或磁盤驅(qū)動器說明。 level 一個整數(shù),指定 Flash Player 中影片將被加載到的級別。
variables 一個可選參數(shù),指定發(fā)送變量所使用的 HTTP 方法。該參數(shù)必須是字符串 GET 或 POST
。如果沒有要發(fā)送的變量,則省略此參數(shù)。 GET 方法將變量追加到 URL 的末尾,該方法用于發(fā)送少量變量。 POST 方法在單獨的 HTTP
標頭中發(fā)送變量,該方法用于發(fā)送長的變量字符串。返回無。說明動作;在播放原來加載的影片的同時將 或 JPEG 文件加載到 Flash Player
中的某個級別。在將影片加載到級別而不是目標時,標準模式下“動作”面板中的 loadMovie 動作將切換為 loadMovieNum
;在專家模式下,您必須指定 loadMovieNum 或從“動作”工具箱中選擇它。一般情況下, Flash Player 顯示單個影片(
文件),然后關閉。 loadMovieNum 動作使您可以同時顯示幾個影片,并且無需加載另一個 HTML 文檔就可在影片之間切換。 Flash
Player 具有從級別 0 開始的級別堆疊順序。這些級別類似于醋酸纖維層;除了每個級別上的對象之外,它們是透明的。當使用 loadMovieNum
動作時,必須指定 Flash Player 中影片將加載到的級別。在影片加載到級別后,即可使用語法 _level N 來定位影片,其中 N
為級別號。當加載影片時,可指定任何級別號,并且可將影片加載到已加載有 文件的級別。如果執(zhí)行此動作,則新影片將替換現(xiàn)有的 文件。如果將影片加載到級別
0 ,則 Flash Player 中的每個級別均被卸載,并且級別 0 將替換為該新文件。處于級別 0
的影片為所有其他加載的影片設置幀頻、背景色和幀大小。 loadMovieNum 動作也允許您在播放影片時將 JPEG 文件加載到影片中。對于圖像和
文件,在文件加載時,圖像的左上角均與舞臺的左上角對齊。另外,在這兩種情況下,加載的文件均繼承旋轉和縮放設置,并且原始內(nèi)容將被覆蓋。使用
unloadMovieNum 動作可刪除使用 loadMovieNum 動作加載的影片或圖像。示例此示例將 JPEG 圖像“ image45.jpg
”加載到 Flash Player 的級別 2 中。 loadMovieNum("
2); //另請參見 loadMovie unloadMovie unloadMovieNum _level 二.瀏覽器/網(wǎng)絡 : 控制 Web 瀏覽器和網(wǎng)絡的動作(三)
5.loadVariables
可用性 Flash Player 4 。用法 loadVariables (" url " , level/ " target "[,
variables ]) 參數(shù) url 變量所處位置的絕對或相對 URL 。如果使用 Web 瀏覽器訪問影片,則此 URL
的宿主必須與影片本身在同一子域中。 level 指定 Flash Player
中接收這些變量的級別的整數(shù)。當將變量加載到級別時,在標準模式下,“動作”面板中的該動作變成 loadVariablesNum
;在專家模式下,您必須指定 loadVariablesNum 或從“動作”工具箱中選擇它。 target
指向接收所加載變量的影片剪輯的目標路徑。您只能指定 target 影片剪輯或 Flash Player 中的 level
(級別)這兩者之一;而不能同時指定這兩者。 variables 一個可選參數(shù),指定發(fā)送變量所使用的 HTTP 方法。該參數(shù)必須是字符串 GET 或
POST 。如果沒有要發(fā)送的變量,則省略此參數(shù)。 GET 方法將變量追加到 URL 的末尾,該方法用于發(fā)送少量變量。 POST 方法在單獨的
HTTP 標頭中發(fā)送變量,該方法用于發(fā)送長的變量字符串。返回無。說明動作;從外部文件(例如文本文件,或由 CGI 腳本、 Active Server
Page (ASP) 、 PHP 或 Perl 腳本生成的文本)讀取數(shù)據(jù),并設置 Flash Player
級別或目標影片剪輯中變量的值。此動作還可用于使用新值更新活動影片中的變量。在指定 URL 處的文本必須為標準的 MIME 格式
application/x-www-form-urlencoded (一種 CGI
腳本使用的標準格式)。要加載的影片和變量必須駐留在同一子域中??梢灾付ㄈ我鈹?shù)量的變量。例如,下面的語句定義了幾個變量:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103 將要在
Flash Player 實例中打開的第一個影片加載到最下一級(在代碼中標識為 _level0 )。當使用 loadMovie 或
loadMovieNum 動作將后面的影片加載到 Flash Player 中時,必須指定一個 Flash Player
中的級別號,或者指定一個目標影片剪輯(每個影片都將加載到該級別或目標影片剪輯中)。當使用 loadVariables 動作時,必須指定變量將加載到的
Flash Player 級別或影片剪輯目標。示例此示例將來自文本文件的信息加載到主時間軸上 varTarget
影片剪輯的文本字段中。文本字段的變量名必須與 data.txt 文件中的變量名匹配。 on(release) {
loadVariables("data.txt", "_root.varTarget"); } 另請參見loadVariablesNum
loadMovie loadMovieNum getURL 、 MovieClip.loadVariables
6. loadVariablesNum
可用性 Flash Player 4 。用 Flash 5 打開的 Flash 4 文件將進行轉換,以使用正確的語法。用法
loadVariables (" url " , level [, variables ]) 參數(shù) url 變量所處位置的絕對或相對 URL
。如果使用 Web 瀏覽器訪問影片,則此 URL 的宿主必須與影片本身在同一子域中。 level 指定 Flash Player
中接收這些變量的級別的整數(shù)。 variables 一個可選參數(shù),指定發(fā)送變量所使用的 HTTP 方法。該參數(shù)必須是字符串 GET 或 POST
。如果沒有要發(fā)送的變量,則省略此參數(shù)。 GET 方法將變量追加到 URL 的末尾,該方法用于發(fā)送少量變量。 POST 方法在單獨的 HTTP
標頭中發(fā)送變量,該方法用于發(fā)送長的變量字符串。返回無。說明動作;從外部文件(例如文本文件,或由 CGI 腳本、 Active Server Page
(ASP) 、 PHP 或 Perl 腳本生成的文本)讀取數(shù)據(jù),并設置 Flash Player
級別中變量的值。此動作還可用于使用新值更新活動影片中的變量。當將變量加載到級別時,在標準模式下,“動作”面板中的該動作變成
loadVariablesNum ;在專家模式下,您必須指定 loadVariablesNum 或從“動作”工具箱中選擇它。在指定 URL
處的文本必須為標準的 MIME 格式 application/x-www-form-urlencoded (一種 CGI
腳本使用的標準格式)。要加載的影片和變量必須駐留在同一子域中??梢灾付ㄈ我鈹?shù)量的變量。例如,下面的語句定義了幾個變量:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103 將要在
Flash Player 實例中打開的第一個影片加載到最下一級(在代碼中標識為 _level0 )。當使用 loadMovie 或
loadMovieNum 動作將后面的影片加載到 Flash Player 中時,必須指定一個 Flash Player
中的級別號,或指定一個目標影片剪輯(每個影片都將加載到該級別或目標影片剪輯中)。當使用 loadVariablesNum
動作時,必須指定變量將加載到的 Flash Player 級別。示例此示例將來自文本文件中的信息加載到 Flash Player 中級別 0
處的影片的主時間軸上的文本字段中。文本字段的變量名必須與 data.txt 文件中的變量名匹配。 on(release) {
loadVariablesNum("data.txt", 0); } 另請參見 getURL loadMovieloadMovieNum
loadVariables
-- 二.瀏覽器/網(wǎng)絡 : 控制 Web 瀏覽器和網(wǎng)絡的動作(四)
7. unloadMovie
可用性 Flash Player 3 。用法 unloadMovie[Num]( level/ " target ") 參數(shù) level
加載影片的級別 ( _level N ) 。從一個級別卸載影片時,在標準模式下,“動作”面板中的 unloadMovie 動作切換為
unloadMovieNum ;在專家模式下,必須指定 unloadMovieNum ,或者從“動作”工具箱中選擇它。 target
影片剪輯的目標路徑。返回無。說明動作;從 Flash Player 中刪除一個已加載的影片或影片剪輯。若要卸載一個已經(jīng)加載到 Flash
Player 級別中的影片,請使用 level 參數(shù)。若要卸載已經(jīng)加載的影片剪輯,請使用 target 參數(shù)。示例下面的示例卸載主時間軸上的影片剪輯
draggable ,并將影片 movie.swf 加載到級別 4 中。 on (press) { unloadMovie
("_root.draggable"); loadMovieNum ("movie.swf", 4); } 下面的示例卸載已經(jīng)加載到級別 4
中的影片: on (press) { unloadMovieNum (4); } 另請參見 loadMovie loadMovieNum
unloadMovieNum
8. unloadMovieNum
可用性 Flash Player 3 。用法 unloadMovieNum( level ) 參數(shù) level 加載影片的級別 ( _level N
) 。返回無。說明動作;從 Flash Player 中刪除已加載的影片。另請參見 loadMovie loadMovieNum
三 影片剪輯控制 : 控制影片剪輯的動作
1. duplicateMovieClip
可用性 Flash Player 4 。用法 duplicateMovieClip( target , newname , depth ) 參數(shù)
target 要復制的影片剪輯的目標路徑。 newname 復制的影片剪輯的唯一標識符。 depth
復制的影片剪輯的唯一深度級別。深度級別是復制的影片剪輯的堆疊順序。這種堆疊順序很像時間軸中圖層的堆疊順序;較低深度級別的影片剪輯隱藏在較高堆疊順序的剪輯之下。必須為每個復制的影片剪輯分配一個唯一的深度級別,以防止它替換現(xiàn)有深度上的影片。返回無。說明動作;當影片正在播放時,創(chuàng)建一個影片剪輯的實例。無論播放頭在原始影片剪輯(或“父級”)中處于什么位置,復制的影片剪輯的播放頭始終從第一幀開始。父影片剪輯中的變量不拷貝到復制的影片剪輯中。如果刪除父影片剪輯,則復制的影片剪輯也被刪除。使用
removeMovieClip 動作或方法可以刪除由 duplicateMovieClip 創(chuàng)建的影片剪輯實例。示例該語句復制影片剪輯實例
flower 十次。變量 i 用于為每個復制的影片剪輯創(chuàng)建新實例名和唯一的深度。 on (release) { amount = 10; while
(amount>0) { duplicateMovieClip (_root.flower, "mc"+i, i); setProperty
("mc"+i, _x, random(275)); setProperty ("mc"+i, _y, random(275));
setProperty ("mc"+i, _alpha, random(275)); setProperty ("mc"+i, _xscale,
random(50)); setProperty ("mc"+i, _yscale, random(50)); i++; amount--; } }
另請參見 removeMovieClip
2. onClipEvent
可用性 Flash Player 5 。用法 onClipEvent( movieEvent ){ statement(s); } 參數(shù)
movieEvent 是一個稱作“事件”的觸發(fā)器。當事件發(fā)生時,執(zhí)行該事件后面花括號中的語句。可以為 movieEvent 參數(shù)指定下面的任何值:
- load 影片剪輯一旦被實例化并出現(xiàn)在時間軸中時,即啟動此動作。 - unload 在從時間軸中刪除影片剪輯之后,此動作在第一幀中啟動。處理與
Unload 影片剪輯事件關聯(lián)的動作之前,不向受影響的幀附加任何動作。 - enterFrame 以影片幀頻不斷地觸發(fā)此動作。首先處理與
enterFrame 剪輯事件關聯(lián)的動作,然后才處理附加到受影響幀的所有幀動作腳本。 - mouseMove 每次移動鼠標時啟動此動作。
_xmouse 和 _ymouse 屬性用于確定當前鼠標位置。 - mouseDown 當按下鼠標左鍵時啟動此動作。 - mouseUp
當釋放鼠標左鍵時啟動此動作。 - keyDown 當按下某個鍵時啟動此動作。使用 Key . getCode 方法獲取最近按下的鍵的有關信息。 -
keyUp 當釋放某個鍵時啟動此動作。使用 Key . getCode 方法獲取最近按下的鍵的有關信息。 - data 當在
loadVariables 或 loadMovie 動作中接收數(shù)據(jù)時啟動此動作。當與 loadVariables 動作一起指定時, data
事件只發(fā)生一次,即加載最后一個變量時。當與 loadMovie 動作一起指定時,獲取數(shù)據(jù)的每一部分時, data 事件都重復發(fā)生。
statement(s) 發(fā)生 mouseEvent
時要執(zhí)行的指令。說明事件處理函數(shù);觸發(fā)為特定影片剪輯實例定義的動作。示例下面的語句在導出影片時包括來自外部文件的腳本;當加載動作所附加到的影片剪輯時,運行包含腳本中的動作:
onClipEvent(load) { #include "myScript.as" } 下面的示例將 onClipEvent 與 keyDown
影片事件一起使用。 keyDown 影片事件通常與 Key 對象的一個或多個方法和屬性一起使用。下面的腳本使用 Key.getCode
方法找出用戶按下了哪個鍵;如果按下的鍵與 Key.RIGHT 屬性相匹配,則將影片移到下一幀;如果按下的鍵與 Key.LEFT
屬性相匹配,則將影片移到上一幀。 onClipEvent(keyDown) { if (Key.getCode() == Key.RIGHT) {
_parent.nextFrame(); } else if (Key.getCode() == Key.LEFT){
_parent.prevFrame(); } }下面的示例將 onClipEvent 與 mouseMove 影片事件一起使用。 _ xmouse
和 _ ymouse 屬性跟蹤每次鼠標移動時的鼠標位置。 onClipEvent(mouseMove) { stageX=_root.xmouse;
stageY=_root.ymouse; } 另請參見 on
3. removeMovieClip
可用性 Flash Player 4 。用法 removeMovieClip( target ) 參數(shù) target 用
duplicateMovieClip 創(chuàng)建的影片剪輯實例的目標路徑,或者用 MovieClip 對象的 attachMovie 或
duplicateMovieClip 方法創(chuàng)建的影片剪輯的實例名。返回無。說明動作;刪除用 MovieClip 對象的 attachMovie 或
duplicateMovieClip 方法創(chuàng)建的,或者用 duplicateMovieClip 動作創(chuàng)建的影片剪輯實例。另請參見
duplicateMovieClip 1/1
4. setProperty
可用性 Flash Player 4 。用法 setProperty(" target ", property , value/expression
) 參數(shù) target 到要設置其屬性的影片剪輯實例名稱的路徑。要設置的屬性。 value 屬性的新文本值。 expression
計算結果為屬性新值的公式。返回無。說明動作;當影片播放時,更改影片剪輯的屬性值。示例當單擊按鈕時,此語句將名為 star 的影片剪輯的 _alpha
屬性設置為 30% : on(release) { setProperty("star", _alpha, "30"); } 另請參見
getProperty 1/1
5. startDrag
可用性 Flash Player 4 。用法 startDrag( target ,[ lock , left , top , right ,
bottom ]) 參數(shù) target 要拖動的影片剪輯的目標路徑。 lock 一個布爾值,指定可拖動影片剪輯是鎖定到鼠標位置中央 ( true )
,還是鎖定到用戶首次點擊該影片剪輯的位置上 ( false ) 。此參數(shù)是可選的。 left 、 top 、 right 、 bottom
相對于影片剪輯父級坐標的值,這些坐標指定該影片剪輯的約束矩形。這些參數(shù)是可選的。返回無。說明動作;使 target
影片剪輯在影片播放過程中可拖動。一次只能拖動一個影片剪輯。執(zhí)行 startDrag 動作后,影片剪輯將保持可拖動狀態(tài),直到被 stopDrag
動作明確停止為止,或者直到為其他影片剪輯調(diào)用了 startDrag 動作為止。示例若要創(chuàng)建用戶可以放在任何位置的影片剪輯,可將 startDrag
和 stopDrag 動作附加到該影片剪輯內(nèi)的某個按鈕上。 on(press) { startDrag(this,true); }
on(release) { stopDrag(); } 另請參見 stopDrag 1/1
6. stopDrag
可用性 Flash Player 4 。用法 stopDrag()
參數(shù)無。返回無。說明動作;停止當前的拖動操作。示例此語句在用戶釋放鼠標按鈕時停止實例 mc 上的拖動動作: on(press) {
startDrag("mc"); } on(release) { stopdrag(); } 另請參見 startDrag 1/1
7. updateAfterEvent
可用性 Flash Player 5 。用法 updateAfterEvent() 參數(shù)無。返回無。說明動作;當在 onClipEvent
處理函數(shù)中調(diào)用它時,或作為傳遞給 setInterval 的函數(shù)或方法的一部分進行調(diào)用時,該動作更新顯示(與為影片設置的每秒幀數(shù)無關)。如果對
updateAfterEvent 的調(diào)用不在 onClipEvent 處理函數(shù)中,也不是傳遞給 setInterval 的函數(shù)或方法的一部分,則
Flash 忽略該調(diào)用。另請參見 onClipEvent setInterval 1/1
四. 變量 : 修改和訪問變量的動作
1. delete
可用性 Flash Player 5 。用法 delete reference 參數(shù) reference
要消除的變量或?qū)ο蟮拿Q。返回無。說明運算符;銷毀由 reference 參數(shù)指定的對象或變量,如果該對象被成功刪除,則返回 true ;否則返回
false 值。該運算符對于釋放腳本所用的內(nèi)存非常有用。雖然 delete 是一個運算符,但它通常作為語句使用,如下所示: delete x; 如果
reference 參數(shù)不存在,或者不能被刪除,則 delete 運算符可能失敗并返回 false 。預定義的對象和屬性以及由 var
聲明的變量不能刪除。不能使用 delete 運算符刪除影片剪輯。示例下面的示例創(chuàng)建一個對象并使用它,然后在不再需要時刪除它。 account =
new Object(); account.name = \'Jon\'; account.balance = 10000; delete
account; 示例下面的示例刪除對象的一個屬性。 // create the new object "account" account =
new Object(); // assign property name to the account account.name =
\'Jon\'; // delete the property delete account.name; 示例下面是刪除對象屬性的另一個示例。 //
create an Array object with length 0 array = new Array(); // Array.length
is now 1 array[0] = "abc"; // add another element to the
array,Array.length is now 2array[1] = "def"; // add another element to
array,Array.length is now 3 array[2] = "ghi"; // array[2] is deleted, but
Array.length is not changed, delete array[2]; 下面的示例闡釋了 delete 對于對象引用的行為方式:
// create a new object, and assign the variable ref1 // to refer to the
object ref1 = new Object(); ref1.name = "Jody"; // copy the reference
variable into a new variable // and delete ref1 ref2 = ref1; delete ref1;
如果 ref1 尚未拷貝到 ref2 中,則當刪除 ref1 時,該對象將被刪除,因為將沒有指向它的引用。如果刪除 ref2
,則不再有指向該對象的任何引用,該對象將被銷毀,同時釋放它所使用的內(nèi)存。另請參見 var 2/2
2. set variable
可用性 Flash Player 4 。用法 set( variable , expression ) 參數(shù) variable 保存
expression 參數(shù)值的標識符。 expression 分配給變量的值。返回無。說明動作;為變量賦值。 variable
是保存數(shù)據(jù)的容器。容器本身始終不變,但內(nèi)容可以更改。通過在影片播放時更改變量的值,可以記錄和保存有關用戶所執(zhí)行操作的信息;記錄當影片播放時更改的值;或者計算某條件是
true 還是 false
。變量可以保存任何類型的數(shù)據(jù)(例如,字符串、數(shù)字、布爾值、對象或影片剪輯)。每個影片和影片剪輯的時間軸都有其自己的變量集,每個變量又都有其自己獨立于其他時間軸上的變量的值。動作腳本是一種動態(tài)類型化語言。每個變量都有一種類型。該類型是在運行時分配的,并且可以在執(zhí)行過程中進行更改。這一點與靜態(tài)類型化語言(如
Java 或 C++ )不同,在靜態(tài)類型化語言中,在編譯時分配類型,而且在運行時無法更改。示例此示例設置一個名為 orig _ x_pos
的變量,該變量存儲 ship 影片剪輯的原始軸位置,以便以后在影片中將船 (ship) 重置到其起始位置。 on(release) {
set(orig_x_pos, getProperty ("ship", _x )); } 上面的代碼與下面的代碼結果一樣: on(release)
{ orig_x_pos = ship._x; } 另請參見 var call 1/1
3. var
可用性 Flash Player 5 。用法 var variableName1 [= value1 ][..., variableNameN [=
valueN ]] 參數(shù) variableName 標識符。 value
分配給變量的值。返回無。說明動作;用于聲明局部變量。如果在函數(shù)內(nèi)聲明局部變量,那么變量就是為該函數(shù)定義的,且在該函數(shù)調(diào)用結束時到期。如果變量不是在塊
( {} ) 內(nèi)聲明的,但使用 call 動作執(zhí)行該動作列表,則該變量為局部變量,且在當前列表結束時到期。如果變量不是在塊中聲明的,且不使用
call 動作執(zhí)行當前動作列表,則這些變量不是局部變量。示例下面的示例使用 var 動作聲明和分配變量: var x; var y = 1; var
z = 3, w = 4; var s, t, u = z; 1/1
4. with
可用性 Flash Player 5 。用法 with ( object ) { statement(s) ; } 參數(shù) object
動作腳本對象或影片剪輯的實例。 statement(s) 花括號中包含的動作或一組動作。返回無。說明動作;允許您使用 object
參數(shù)指定一個對象(比如影片剪輯),并使用 statement(s) 參數(shù)計算對象中的表達式和動作。這可以使您不必重復書寫對象的名稱或路徑。
object 參數(shù)成為讀取 statement(s) 參數(shù)中的屬性、變量與函數(shù)的上下文。例如,如果 object 為 myArray
,且指定屬性中的兩個是 length 與 concat ,則這些屬性將自動作為 myArray . length 與 myArray.concat
進行讀取。在另一個示例中,如果 object 為 state.california ,則 with 動作中的任何動作或語句將從 california
實例中調(diào)用。若要查找 statement(s) 參數(shù)中某標識符的值,動作腳本將從 object
指定的范圍鏈的開頭開始查找,并以特定的順序在范圍鏈的每個級別中搜索該標識符。 with
動作使用范圍鏈解析標識符,該范圍鏈從下面列表中的第一項開始,一直到最后一項結束: - 在 with 動作最里面的 object 參數(shù)中指定的對象。
- 在 with 動作最外面的 object 參數(shù)中指定的對象。 -
激活的對象。(當調(diào)用函數(shù)時自動創(chuàng)建的臨時對象,該函數(shù)包含函數(shù)所調(diào)用的局部變量。) - 包含當前執(zhí)行腳本的影片剪輯。 - 全局對象(諸如 Math 與
String 的內(nèi)置對象)。若要在 with 動作中設置變量,該變量必須已在 with
動作外部進行了聲明,或者您必須輸入該變量所生存時間軸的完整路徑。如果未聲明該變量就在 with 動作中設置它,則該 with
動作將根據(jù)范圍鏈尋找該值。如果該變量還不存在,則將在調(diào)用 with 動作的時間軸上設置此新值。在 Flash 5 中, with 動作替換了被否決的
tellTarget 動作。建議您使用 with 而不使用 tellTarget ,因為前者是對 ECMA-262 標準的一個標準動作腳本擴展功能。
with 與 tellTarget 動作的主要差異在于 with 采用對影片剪輯或其他對象的引用作為其參數(shù),而 tellTarget
采用標識影片剪輯的目標路徑字符串作為其參數(shù),且不能用于指向?qū)ο?。示例下面的示例設置 someOtherMovieClip 實例的 x 與 y
屬性,然后指示 someOtherMovieClip 轉到第三幀并停止。 1/2with (someOtherMovieClip) { _x =
50; _y = 100; gotoAndStop(3); } 下面的代碼片斷顯示如何不使用 with 動作編寫前面的代碼。
someOtherMovieClip._x = 50; someOtherMovieClip._y = 100;
someOtherMovieClip.gotoAndStop(3); 還可使用 tellTarget 動作編寫這段代碼。然而,如果
someOtherMovieClip 不是影片剪輯,而是一個對象,則不能使用 with 動作。 tellTarget
("someOtherMovieClip") { _x = 50; _y = 100; gotoAndStop(3); } with
動作對于在范圍鏈列表中同時訪問多項十分有用。在下面的示例中,內(nèi)置 Math 對象被放置在范圍鏈的前面。將 Math 設置為默認對象可以將標識符
cos 、 sin 與 PI 分別解析為、 Math.sin 與 Math.PI 。標識符 a 、 x 、 y 與 r 不是 Math
對象的方法或?qū)傩?,但由于它們存在于函?shù) polar 的對象激活范圍中,所以將它們解析為相應的局部變量。 function polar(r) {
var a, x, y; with (Math) { a = PI * r * r; x = r * cos(PI); y = r *
sin(PI/2); } trace("area = " +a); trace("x = " + x); trace("y = " + y); }
可以使用嵌套的 with 動作訪問多重范圍中的信息。在下面的示例中,實例 fresno 與實例 salinas 是實例 california
的子級。該語句設置 fresno 與 salinas 的 _alpha 值,且不改變 california 的 _alpha 值。 with
(california){ with (fresno){ _alpha = 20; } with (salinas){ _alpha = 40; }
} 另請參見 tellTarget 2/2
-- 五. 條件/循環(huán) : 條件語句和循環(huán)構造(一)
1. Break
可用性 Flash Player 4 。用法 break 參數(shù)無。返回無。說明動作;出現(xiàn)在一個循環(huán)( for 、 for..in 、 do
while 或 while 循環(huán))中,或者出現(xiàn)在與 switch 動作內(nèi)特定 case 語句相關聯(lián)的語句塊中。 break 動作可命令 Flash
跳過循環(huán)體的其余部分,停止循環(huán)動作,并執(zhí)行循環(huán)語句之后的語句。當使用 break 動作時, Flash 解釋程序會跳過該 case
塊中的其余語句,轉到包含它的 switch 動作后的第一個語句。使用 break 動作可跳出一系列嵌套的循環(huán)。示例下面的示例使用 break
動作退出一個循環(huán),如果沒有該動作,則該循環(huán)為無限循環(huán)。 i = 0; while (true) { if (i >= 100) { break; }
i++; } 另請參見 for for..in do while while switch case
2. case
可用性 Flash Player 4 。用法 case expression : statements 參數(shù) expression 任何表達式。
statements 任何語句。返回無。說明關鍵字;定義用于 switch 動作的條件。如果 case 關鍵字后的 expression
參數(shù)在使用全等 ( === ) 的情況下等于 switch 動作的 expression 參數(shù),則執(zhí)行 statements 參數(shù)中的語句。如果在
switch 語句外部使用 case 動作,則將產(chǎn)生錯誤,腳本不能編譯。另請參見 switch default break === (全等)
3. continue
可用性 Flash Player 4 。用法 continue
參數(shù)無。返回無。說明動作;出現(xiàn)在幾種類型的循環(huán)語句中;它在每種類型的循環(huán)中的行為方式各不相同。在 while 循環(huán)中, continue 可使
Flash 解釋程序跳過循環(huán)體的其余部分,并轉到循環(huán)的頂端(在該處進行條件測試)。在 do while 循環(huán)中, continue 可使 Flash
解釋程序跳過循環(huán)體的其余部分,并轉到循環(huán)的底端(在該處進行條件測試)。在 for 循環(huán)中, continue 可使 Flash
解釋程序跳過循環(huán)體的其余部分,并轉而計算 for 循環(huán)的后表達式 (post- expression) 。在 for..in 循環(huán)中,
continue 可使 Flash 解釋程序跳過循環(huán)體的其余部分,并跳回循環(huán)的頂端(在該處處理下一個枚舉值)。另請參見 do while for
for..in while
4. Default
可用性 Flash Player 6 。用法 default: statements 參數(shù) statements 任何語句。返回無。說明關鍵字;定義
switch 動作的默認情況。對于一個給定的 switch 動作,如果該 switch 動作的 Expression 參數(shù)與 case
關鍵字后面的任何一個 Expression 參數(shù)都不相等(使用全等),則執(zhí)行這些語句。 switch 不必一定有 default 情況。
default 情況也不必出現(xiàn)在列表的最后。在 switch 動作外部使用 default 動作是錯誤的,腳本將不編譯。示例在下面的示例中,表達式
A 與表達式 B 或 D 不相等,所以運行 default 關鍵字后面的語句,并將 trace 動作發(fā)送到輸出窗口。 switch ( A ) {
case B: C; break; case D: E; break; default: trace ( “ nospecific case was
encountered ” ); } 另請參見 switch case break
5. do while
可用性 Flash Player 4 。用法 do { statement(s) } while ( condition ) 參數(shù)
condition 要計算的條件。 statement(s) 只要 condition 參數(shù)計算結果為 true
就會執(zhí)行的語句。返回無。說明動作;執(zhí)行語句,然后只要條件為 true ,就計算循環(huán)中的條件。另請參見 break continue
6. else
可用性 Flash Player 4 。用法 else statement else {...statement(s)...} 參數(shù)
condition 計算結果為 true 或 false 的表達式。 statement(s) 如果 if 語句中指定的條件為 false
,則運行的替代語句系列。返回無。說明動作;指定當 if 語句中的條件返回 false 時要運行的語句。另請參見 if
7. else if
可用性 Flash Player 4 。用法 if ( condition ){ statement(s) ; } else if (
condition ){ statement(s) ; } 參數(shù) condition 計算結果為 true 或 false 的表達式。
statement(s) 如果 if 語句中指定的條件為 false ,則運行的替代語句系列。返回無。說明動作;計算條件,并指定當初始 if
語句中的條件返回 false 時要運行的語句。如果 else if 條件返回 true ,則 Flash 解釋程序運行該條件后面花括號 ( {} )
中的語句。如果 else if 條件為 false ,則 Flash 跳過花括號中的語句,運行花括號之后的語句。在腳本中可以使用 elseif
動作創(chuàng)建分支邏輯。示例下面的示例使用 else if 動作檢查對象的每一邊是否都在特定的邊界內(nèi): // if the object goes off
bounds, // send it back and reverse its travel speed if
(this._x>rightBound) { this._x = rightBound; xInc = -xInc; } else if
(this._x<leftBound) { this._x = leftBound; xInc = -xInc; } else if
(this._y>bottomBound) { this._y = bottomBound; yInc = -yInc; } else if
(this._y<topBound) { this._y = topBound; yInc = -yInc; }
五. 條件/循環(huán) : 條件語句和循環(huán)構造(二)
1. for
可用性 Flash Player 5 。用法 for( init; condition; next ) { statement(s); } 參數(shù)
init 一個在開始循環(huán)序列前要計算的表達式,通常為賦值表達式。此參數(shù)還允許使用 var 語句。 condition 計算結果為 true 或
false 的表達式。在每次循環(huán)迭代前計算該條件;當條件的計算結果為 false 時退出循環(huán)。 next
一個在每次循環(huán)迭代后要計算的表達式;通常為使用 ++ (遞增)或 -- (遞減)運算符的賦值表達式。 statement(s)
在循環(huán)體內(nèi)要執(zhí)行的指令。說明動作;一種循環(huán)結構,首先計算 init (初始化)表達式一次,只要 condition 的計算結果為 true
,則按照以下順序開始循環(huán)序列,執(zhí)行 statement ,然后計算 next 表達式。一些屬性無法用 for 或 for..in
動作進行枚舉。例如, Array 對象的內(nèi)置方法( Array.sort 和)不包括在 Array 對象的枚舉中,而影片剪輯屬性,如 _x 和 _y
,也不能枚舉。示例下面的示例使用 for 在數(shù)組中添加元素: for(i=0; i<10; i++) { array [i] = (i +
5)*10; trace(array[i]); } 在輸出窗口中顯示下列結果: 50 60 70 80 90 100 110 120 130 140
下面是使用 for 重復執(zhí)行同一動作的示例。下面的代碼中, for 循環(huán)將從 1 到 100 的數(shù)字相加: var sum = 0; for
(var i=1; i<=100; i++) { sum = sum + i; } 另請參見 ++ (遞增) -- (遞減) for..in var 2. for..in
可用性 Flash Player 5 。用法 for(v ariableIterant in object ){ statement(s); }
參數(shù) variableIterant 作為迭代變量的變量名,引用數(shù)組中對象或元素的每個屬性。 object 要重復的對象的名稱。
statement(s) 要為每次迭代執(zhí)行的指令。返回無。說明動作;循環(huán)通過數(shù)組中對象或元素的屬性,并為對象的每個屬性執(zhí)行 statement
。一些屬性無法用 for 或 for..in 動作進行枚舉。例如, Array 對象的內(nèi)置方法( Array.sort 和)不包括在 Array
對象的枚舉中,而影片剪輯屬性,如 _x 和 _y ,也不能枚舉。 for..in 結構迭代所迭代對象的原型鏈中對象的屬性。如果 child 的原型為
parent ,則用 for..in 迭代 child 的屬性,也將迭代 parent 的屬性。 for..in
動作枚舉對象原型鏈中的所有對象。首先枚舉該對象的屬性,接著枚舉其直接原型的屬性,然后枚舉該原型的原型的屬性,依次類推。 for..in
動作對于同一屬性名不枚舉兩次。如果對象 child 具有原型 parent ,而這兩個對象都包含屬性 prop ,則對 child 調(diào)用的
for..in 動作枚舉來自 child 的 prop ,而忽略 parent 中的該屬性。示例下面的示例使用 for..in 迭代某對象的屬性:
myObject = { name:\'Tara\', age:27, city:\'San Francisco\' }; for (name in
myObject) { trace ("myObject." + name + " = " + myObject[name]); }
此示例的輸出如下所示: myObject.name = Tara myObject.age = 27 myObject.city = San
Francisco 下面的示例將 typeof 運算符與 for..in 一起使用來迭代特定類型的 child : for (name in
myMovieClip) {if (typeof (myMovieClip[name]) = "movieclip") { trace ("I
have a movie clip child named " + name); } }
下面的示例枚舉影片剪輯的子級,并將每個子級發(fā)送到其各自時間軸的第二幀。 RadioButtonGroup 影片剪輯是一個父級,它具有多個子級:
_RedRadioButton_ 、 _GreenRadioButton_ 和 _BlueRadioButton 。 for (var name
in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); }
3. if
可用性 Flash Player 4 。用法 if( condition) { statement(s) ; } 參數(shù) condition
計算結果為 true 或 false 的表達式。 statement(s) 如果或當條件的計算結果為 true
時要執(zhí)行的指令。返回無。說明動作;對條件進行計算以確定影片中的下一步動作。如果條件為 true ,則 Flash 將運行條件后面花括號 ( {} )
內(nèi)的語句。如果條件為 false ,則 Flash 跳過花括號內(nèi)的語句,運行花括號后面的語句。使用 if
動作可在腳本中創(chuàng)建分支邏輯。示例在下面的示例中,括號內(nèi)的條件對變量 name 進行計算以查看其是否具有文本值“ Erica
”。如果有,則運行花括號內(nèi)的 play 動作。 if(name == "Erica"){ play(); } 示例下面的示例使用 if
動作計算用戶何時釋放影片中的可拖動對象。如果對象在拖動后 300 毫秒之內(nèi)被釋放,則條件的計算結果為 true
,并運行花括號內(nèi)的語句。這些語句設置變量以存儲對象的新位置、拖放對象的難易程度和拖放對象時的速度。 timePressed
變量也將被重置。如果對象在拖動后超過 300 毫秒之后被釋放,則條件的計算結果為 false ,并且不運行任何語句。 if
(getTimer()<timePressed+300) { // if the condition is true, // the object
was thrown. // what is the new location of this object? xNewLoc = this._x;
yNewLoc = this._y; // how hard did they throw it? xTravel = xNewLoc-xLoc;
yTravel = yNewLoc-yLoc; // setting the speed of the object depending on //
how far they travelled with it xInc = xTravel/2; yInc = yTravel/2;
timePressed = 0; } 另請參見 else
4.
可用性 Flash Player 4 。用法tch ( expression){ caseClause : [ defaultClause :] }
參數(shù) expression 任意表達式。 caseClause 一個 case 關鍵字,其后跟著表達式、冒號和一組語句,如果在使用全等 ( ===
) 的情況下,此處的表達式與tch expression 參數(shù)相匹配,則執(zhí)行這組語句。 defaultClause 一個 default
關鍵字,其后跟著如果這些 case 表達式都不與tch expression 參數(shù)全等 ( === )
匹配時要執(zhí)行的語句。返回無。說明動作;創(chuàng)建動作腳本語句的分支結構。像 if 動作一樣,tch 動作測試一個條件,并在條件返回 true
值時執(zhí)行語句。示例在下面的示例中,如果 number 參數(shù)的計算結果為 1 ,則執(zhí)行 case 1 后面的 trace 動作,如果 number
參數(shù)的計算結果為 2 ,則執(zhí)行 case 2 后面的 trace 動作,依此類推。如果 case 表達式都不匹配 number 參數(shù),則執(zhí)行
default 關鍵字后面的 trace 動作。tch (number) { case 1: trace ("case 1 tested
true"); break; case 2: trace ("case 2 tested true"); break; case 3: trace
("case 3 tested true"); break; default: trace ("no case tested true") }
在下面的示例中,第一個 case 組中沒有 break ,因此如果 number 為 1 ,則 A 和 B 都被發(fā)送到輸出窗口:tch
(number) { case 1: trace ("A"); case 2: trace ("B"); break; default trace
("D") } 另請參見 === (全等) break case default if
5. while
可用性 Flash Player 4 。用法 while( condition ) { statement(s) ; } 參數(shù) condition
每次執(zhí)行 while 動作時都要重新計算的表達式。如果該語句的計算結果為 true ,則運行 statement(s) 。 statement(s)
條件的計算結果為 true 時要執(zhí)行的代碼。返回無。說明動作;測試表達式,只要該表達式為 true
,就重復運行循環(huán)中的語句或語句序列。在運行語句塊之前,首先測試 condition ;如果該測試返回 true ,則運行該語句塊。如果該條件為
false ,則跳過該語句塊,并執(zhí)行 while
動作語句塊之后的第一條語句。通常當計數(shù)器變量小于某指定值時,使用循環(huán)執(zhí)行動作。在每個循環(huán)的結尾遞增計數(shù)器的值,直到達到指定值為止。此時,
condition 不再為 true ,且循環(huán)結束。 while 語句執(zhí)行下面一系列步驟。步驟 1 至 4
的每次重復叫做循環(huán)的“迭代”。在每次迭代的開始重新測試 condition ,如下面的步驟所述: 1 計算表達式 condition 。 2 如果
condition 的計算結果為 true ,或者一個可轉換為布爾值 true 的值(比如一個非零數(shù)字),則轉到步驟 3 。否則, while
語句結束,并從 while 循環(huán)之后的下一語句恢復執(zhí)行過程。 3 運行語句塊 statement(s) 。 4 轉到步驟 1
。示例此示例在舞臺上復制五個影片剪輯,每個影片剪輯具有隨機生成的、位置; xscale 、 yscale 以及 _alpha 屬性以達到分散的效果。
. 變量 foo 初始化為值 0 。設置 condition 參數(shù)使 while 循環(huán)運行五次,即只要變量 foo 的值小于 5 就運行。在
while 循環(huán)中,復制影片剪輯,并使用 setProperty 調(diào)整所復制影片剪輯的各種屬性。循環(huán)的最后一條語句遞增 foo ,以便當該值達到 5
時, condition 參數(shù)計算結果為 false ,從而不再執(zhí)行該循環(huán)。 on(release) { foo = 0; while(foo <
5) { duplicateMovieClip("_root.flower", "mc" + foo, foo); setProperty("mc"
+ foo, _x, random(275)); setProperty("mc" + foo, _y, random(275));
setProperty("mc" + foo, _alpha, random(275)); setProperty("mc" + foo,
_xscale, random(200)); setProperty("mc" + foo, _yscale, random(200));
foo++; } } 另請參見 do while continue for for..in
六. 用戶定義的函數(shù) : 創(chuàng)建和調(diào)用函數(shù)的動作
1. call 可用性 Flash Player 4 。在 Flash 5 中已不鼓勵使用此動作,推薦改用 function 動作。用法 call( frame )
參數(shù) frame
時間軸中幀的標簽或編號。返回無。說明動作;執(zhí)行被調(diào)用幀中的腳本,而不將播放頭移動到該幀。一旦執(zhí)行完該腳本,局部變量將不存在。另請參見
function
2. function 可用性 Flash Player 5 。用法 function functionname ([ parameter0,
parameter1,...parameterN ]){ statement(s) } function ([ parameter0,
parameter1,...parameterN ]){ statement(s) } 參數(shù) functionname
新函數(shù)的名稱。一個標識符,表示要傳遞給函數(shù)的參數(shù)。這些參數(shù)是可選的。 statement(s) 為 function
的函數(shù)體定義的任何動作腳本指令。返回無。說明動作;您定義的用來執(zhí)行特定任務的一組語句??梢栽谟捌囊粋€地方“聲明”或定義函數(shù),然后從影片的其他腳本調(diào)用它。定義函數(shù)時,還可以為其指定參數(shù)。參數(shù)是函數(shù)要對其進行操作的值的占位符。每次調(diào)用函數(shù)時,可以向其傳遞不同的參數(shù)。這使您可以在不同場合重復使用一個函數(shù)。在函數(shù)的
statement(s) 中使用 return 動作可使函數(shù)返回或生成一個值。用法 1 :用指定的 functionname 、
parameters 和 statement(s) 聲明一個 function
。當調(diào)用函數(shù)時,則調(diào)用函數(shù)聲明。允許提前引用;在同一“動作”列表中,函數(shù)可以先調(diào)用后聲明。一個函數(shù)的聲明會替換同一函數(shù)以前的任何聲明。只要是允許使用語句的地方就可使用此語法。用法
2 :創(chuàng)建一個匿名函數(shù)并返回它。此語法用于表達式中,對于在對象中安裝方法尤其有用。示例用法 1 :下面的示例定義函數(shù) sqr
,該函數(shù)接受一個參數(shù)并返回該參數(shù)的 square(x*x) 。請注意,如果在同一腳本中聲明和使用函數(shù),則可以先使用該函數(shù),后聲明它。
y=sqr(3); function sqr(x) { return x*x; } 用法 2 :下面的函數(shù)定義一個 Circle 對象:
function Circle(radius) { this.radius = radius; }
下面的語句定義一個匿名函數(shù),該函數(shù)計算圓形的面積,并將其作為方法附加到對象 Circle : Circle.prototype.area =
function () {return Math.PI * this.radius * this.radius}
3. return 可用性 Flash Player 5 。用法 return[ expression ] return 參數(shù) expression
要作為函數(shù)值計算并返回的字符串、數(shù)字、數(shù)組或?qū)ο?。此參?shù)是可選的。返回如果提供了 expression
參數(shù),則返回計算的結果。說明動作;指定由函數(shù)返回的值。 return 動作計算 expression 并將結果作為它在其中執(zhí)行的函數(shù)的值返回。
return 動作導致函數(shù)停止運行,并用返回值代替函數(shù)。如果單獨使用 return 語句,它返回 null 。示例下面的示例在 sum 函數(shù)體內(nèi)使用
return 動作,以返回三個參數(shù)相加后的值。下一行代碼調(diào)用 sum 函數(shù)并將返回值賦予變量 newValue : function sum(a,
b, c){ return a + b + c; } newValue = sum(4, 32, 78); trace(newValue); //
sends 114 to the Output window 另請參見 function
七. 其他動作 : 其他動作
1. #endinitclip
可用性 Flash Player 6 。用法 #endinitclip 參數(shù)無。返回無。說明動作;指示組件初始化動作塊的結尾。示例
#initclip ...component initialization actions go here... #endinitclip 另請參見
#initclip
2. #include
可用性暫缺用法 #include " filename.as " 參數(shù) filename.as 要添加到“動作”面板的腳本的文件名; .as
是推薦使用的文件擴展名。返回無。說明動作;包括當測試、發(fā)布或?qū)С鲇捌瑫r參數(shù)中指定的文件的內(nèi)容。當您進行測試、發(fā)布或?qū)С鰰r, #include
動作將被調(diào)用。當執(zhí)行語法檢查時,將檢查 #include 動作。
3. #initclip
可用性 Flash Player 6 。用法 #initclip order 參數(shù) order 一個整數(shù),指定 #initclip
代碼塊的執(zhí)行順序。這是一個可選參數(shù)。說明動作;指示組件初始化動作塊的開始。當同時初始化多個剪輯時,您可以使用 order
參數(shù)來指定先執(zhí)行哪個初始化動作。在定義影片剪輯元件時,執(zhí)行組件初始化動作。如果影片剪輯是導出的元件,則組件初始化動作將在執(zhí)行
文件第一幀上的動作之前執(zhí)行。否則,組件初始化動作將在一特定幀(該幀包含關聯(lián)影片剪輯元件的第一個實例)的幀動作腳本之前立即執(zhí)行。組件初始化動作在影片播放過程中僅執(zhí)行一次,您應將這些動作用于一次性的初始化動作,例如類定義和注冊。示例下面的示例代碼分配給一個影片的第一幀,該影片為復選框組件。
#initclip 和 #endinitclip 動作將它們所包含的語句塊指定為組件初始化動作。這些所包含的語句注冊類,并將方法存儲在原型對象中。
#initclip if (typeof(CheckBox) == "undefined") { // Define constructor for
(and thus define) CheckBox class function CheckBox() { // Set up our data
bindings this.watch (\'value\', function (id, oldval, newval) { ... };
this.watch (\'label\', function (id, oldval, newval) { ... }; } // Set
CheckBox prototype chain to inherit from MovieClip CheckBox.prototype =
new MovieClip(); // Register CheckBox as the class for symbol "Check Box"
Object.registerClass("Check Box", CheckBox); // Set up some methods
CheckBox.prototype.enable = function () { ... }; CheckBox.prototype.show =
function () { ... }; CheckBox.prototype.hide = function () { ... }; // Set
up a convenience function to instantiate // check boxes CheckBox.create =
function (parentMovieClip, instanceName, depth) {
parentMovieClip.attachMovie("CheckBox", instanceName, depth); }; }
#endinitclip 如果您拷貝此代碼并將其粘貼到“動作”面板中,則在編譯該腳本時,它將因為未定義的函數(shù) ( {...} ) 而產(chǎn)生錯誤另請參見
#endinitclip
4. clearInterval
可用性 Flash Player 6 。用法 clearInterval( intervalID ) 參數(shù) intervalID 調(diào)用
setInterval 函數(shù)后返回的對象。返回無。說明動作;清除對 setInterval
函數(shù)的調(diào)用。示例下面的示例首先設置一個間隔調(diào)用,然后將其清除: function callback() { trace("interval
called"); } var intervalID; intervalID = setInterval( callback, 1000 ); //
sometime later clearInterval( intervalID ); 另請參見 setInterval
// (注釋分隔符)可用性 Flash 1 。用法 // comment 參數(shù) comment
任何字符。返回無。說明注釋;指示腳本注釋的開始。任何出現(xiàn)在注釋分隔符 //
和行結束符之間的字符都被動作腳本解釋程序解釋為注釋并忽略。示例此腳本使用注釋分隔符將第一、第三、第五和第七行標識為注釋。 // record the
X position of the ball movie clip ballX = ball._x; // record the Y
position of the ball movie clip ballY = ball._y; // record the X position
of the bat movie clip batX = bat._x; // record the Y position of the bat
movie clip batY = bat._y; /* (注釋分隔符)可用性 Flash Player 5 。用法 /* comment */
/* comment comment */ 參數(shù) comment 任何字符。返回無。說明 注釋;指示一行或多行腳本注釋。任何出現(xiàn)在注釋開始標簽 /*
和注釋結束標簽 */
之間的字符都被動作腳本解釋程序解釋為注釋并忽略。第一種語法類型用于標識單行注釋。第二種語法類型用于標識連續(xù)多行注釋。在使用注釋分隔符的這種格式時,不使用結束標簽
*/ 會返回一個錯誤信息。示例此腳本在腳本的開頭使用注釋分隔符。 /* records the X and Y positions of the
ball and bat movie clips */ ballX = ball._x; ballY = ball._y; batX =
bat._x; batY = bat._y; 另請參見 // (注釋分隔符)
5. setInterval
可用性 Flash Player 6 。用法 setInterval( function , interval [, arg1 , arg2 ,
..., argn ] ) setInterval( object , methodName , interval [, arg1 , arg2 ,
..., argn ] ) 參數(shù) function 一個函數(shù)名或者一個對匿名函數(shù)的引用。 object 從 Object 對象派生的對象。
methodName 要對 object 參數(shù)調(diào)用的方法的名稱。 interval 對 function 或 methodName
參數(shù)的兩次調(diào)用之間的時間,以毫秒為單位。 arg1 、 arg2 ... argn 可選參數(shù),將傳遞給 function 或 methodName
參數(shù)。返回間隔標識符,可以將該標識符傳遞給 clearInterval
以取消該間隔。說明動作;在播放影片時,每隔一定的時間間隔,就調(diào)用函數(shù)、方法或?qū)ο???梢允褂瞄g隔函數(shù)更新來自數(shù)據(jù)庫的變量或更新時間顯示。如果
interval 小于影片幀頻(例如,每秒 10 幀 (10 fps) 相當于 100 毫秒),則按照盡可能接近 interval
的時間間隔調(diào)用間隔函數(shù)。而且必須使用 updateAfterEvent 函數(shù)來確保以足夠的頻率刷新屏幕。如果 interval
大于影片幀頻,則只有在每次播放頭進入幀時才調(diào)用該間隔函數(shù),以便最小化每次刷新屏幕時的影響。上述的第一種語法示例是標準模式下“動作”面板中
setInterval 函數(shù)的默認語法。若要使用第二種語法示例,必須在專家模式下使用“動作”面板。示例用法 1 :下面的示例每隔 1000
毫秒(每隔 1 秒)調(diào)用一次匿名函數(shù)。 setInterval( function(){ trace("interval called"); },
1000 ); 用法 2 :下面的示例定義兩個回調(diào)函數(shù)并分別調(diào)用它們。對 setInterval 函數(shù)的兩次調(diào)用的結果都是每隔 1000
毫秒就向輸出窗口發(fā)送字符串。對 setInterval 的第一個調(diào)用將調(diào)用 callback1 函數(shù),該函數(shù)包含 trace 動作。對
setInterval 的第二個調(diào)用將字符串作為參數(shù)傳遞給函數(shù) callback2 。 function callback1() {
trace("interval called"); } function callback2(arg) { trace(arg); }
setInterval( callback1, 1000 ); setInterval( callback2, 1000, "interval
called" ); 用法 3 :此示例使用對象的方法。當要調(diào)用為對象定義的方法時,必須使用此語法。只能在專家模式下使用此語法。 obj = new
Object(); obj.interval = function() { trace("interval function called"); }
setInterval( obj, "interval", 1000 ); obj2 = new Object(); obj2.interval =
function(s) { trace(s); } setInterval( obj2, "interval", 1000, "interval
function called" ); 必須使用第二種格式的 setInterval 語法來調(diào)用對象的方法,如下所示: setInterval(
obj2, "interval", 1000, "interval function called" ); 另請參見 clearInterval
updateAfterEvent
6. trace
可用性 Flash Player 4 。用法 trace( expression ) 參數(shù) expression 要計算的表達式。當在 Flash
創(chuàng)作工具中使用“測試影片”命令打開 文件時, expression 參數(shù)的值顯示在輸出窗口中。返回無。說明動作;在測試模式下,計算
expression 并在輸出窗口中顯示結果。在測試影片時,使用 trace 在輸出窗口中記錄編程注釋或顯示消息。使用 expression
參數(shù)檢查是否存在某種條件,或是在輸出窗口中顯示值。 trace 動作類似于 JavaScript 中的 alert 函數(shù)??梢允褂谩鞍l(fā)布設置”中的
Omit Trace (省略 Trace )動作命令從導出的 文件中刪除 trace 動作。示例此示例來自一個游戲,在該游戲中名為 rabbi
的可拖動影片剪輯實例必須在特定目標上釋放。使用一個條件語句計算 _droptarget 屬性并根據(jù) rabbi
的釋放位置執(zhí)行不同的動作。在腳本的末尾使用 trace 動作計算 rabbi 影片剪輯的位置,并在輸出窗口中顯示結果。如果 rabbi
的行為與預期的不一樣(例如,如果它靠近錯誤的目標),則由 trace 動作發(fā)送到輸出窗口的值將幫助您確定腳本中的問題。 on(press) {
rabbi.startDrag(); } on(release) { if(eval(_droptarget) != target) {
rabbi._x = rabbi_x; rabbi._y = rabbi_y; } else { rabbi_x = rabbi._x;
rabbi_y = rabbi._y; target = "_root.pasture"; } trace("rabbi_y = " +
rabbi_y); trace("rabbi_x = " + rabbi_x); stopDrag(); }
八. 運算符 : 在表達式中使用的運算符(一)
1. " " (字符串分隔符)
可用性 Flash Player 4 。用法 " text " 參數(shù) text
一個字符。返回無。說明字符串分隔符;當用于字符的前后時,引號指示這些字符具有字面表示的值,被視作一個“字符串”,而不是一個變量、數(shù)值或其他動作腳本元素。示例此示例使用引號指示變量
yourGuess 的值是文本字符串“ Prince Edward Island ”,而不是變量名。 province
的值是一個變量,而不是文本;要確定 province 的值,必須找出 yourGuess 的值。 yourGuess = "Prince
Edward Island"; on(release){ province = yourGuess trace(province); } //
displays Prince Edward Island in the Output window 另請參見 String (函數(shù))
2. () (括號)
可用性 Flash Player 4 。用法 ( expression1, expression2 ); function (
parameter1,..., parameterN ); 參數(shù) expression1 、 expression2 數(shù)字、字符串、變量或文本。
function
要對括號中的內(nèi)容執(zhí)行的函數(shù)。一系列參數(shù),在將其結果作為參數(shù)傳遞給括號外的函數(shù)之前執(zhí)行這些參數(shù)。返回無。說明運算符;對一個或多個參數(shù)執(zhí)行分組運算,或者括住一個或多個參數(shù)并將它們作為參數(shù)傳遞給括號外的函數(shù)。用法
1
:控制表達式中運算符的執(zhí)行順序。括號覆蓋正常的優(yōu)先級順序,從而導致先計算括號內(nèi)的表達式。如果括號是嵌套的,則先計算最里面括號中的內(nèi)容,然后計算較靠外括號中的內(nèi)容。用法
2 :括住一個或多個參數(shù)并將它們作為參數(shù)傳遞給括號外的函數(shù)。示例用法 1
:下面的語句舉例說明用括號控制表達式執(zhí)行順序的方法。每個表達式的值顯示在每行的下面,如下所示: trace((2 + 3) * (4 + 5));
// displays 45 trace(2 + (3 * (4 + 5))); // displays 29 trace(2 + (3 * 4)
+ 5); // displays 19 用法 2 :下面的示例舉例說明將括號與函數(shù)協(xié)同使用的方法。 getDate();
invoice(item, amount); function traceParameter(param){ trace(param); }
traceParameter(2*2); 另請參見 with
按位運算符 : 對位進行操作的運算符(AND、OR、XOR 等等)
3. & (按位 AND )
可用性 Flash Player 5 。在 Flash 4 中, & 運算符用于連接字符串。在 Flash 5 中, & 運算符是一個按位 AND
運算符,因此必須使用 add 和 + 運算符來連接字符串。使用 & 運算符的 Flash 4 文件在引入 Flash 5 創(chuàng)作環(huán)境時自動更新為使用
add 。用法 expression1 & expression2 參數(shù)無。返回無。說明運算符(按位);將 expression1 和
expression2 轉換為 32 位無符號整數(shù),并對這些整數(shù)參數(shù)的每一位執(zhí)行布爾 AND 運算。結果是一個新的 32 位無符號整數(shù)。
4. ~ (按位 NOT )
可用性 Flash Player 5 。用法 ~ expression 參數(shù) expression 數(shù)字。返回無。說明運算符(按位);將
expression 轉換為 32 位無符號整數(shù),然后對這些位進行求反。按位 NOT 運算更改數(shù)字的符號然后減 1
。示例下面的示例說明對一個變量執(zhí)行按位 NOT 運算。 a = 0; trace ("when a = 0, ~a = "+~a); // when
a = 0, ~a = -1 a = 1; trace ("when a = 1, ~a = "+~a); // when a = 0, ~a =
-2 // therefore, ~0=-1 and ~1=-2
5. | (按位 OR )
可用性 Flash Player 5 。用法 expression1 | expression2 參數(shù) expression1 、
expression2 數(shù)字。返回無。說明運算符(按位);將 expression1 和 expression2 轉換為 32
位無符號整數(shù),然后對于 expression1 或 expression2 的相應位為 1 的每一位返回 1 。示例下面是一個按位 OR
運算的示例。 // 15 decimal = 1111 binary x = 15; // 9 decimal = 1001 binary y =
9; trace(x | y); // 1111 | 0011 = 1111 // returns 15 decimal (= 1111
binary)
^ (按位 XOR )可用性 Flash Player 5 。用法 expression1 ^ expression2 參數(shù) expression1
、 expression2 數(shù)字。返回無。說明運算符(按位);將 expression1 和 expression2 轉換為 32
位無符號整數(shù),然后對于 expression1 或者 expression2 中相應位為 1 且不同時為 1 的每一位,返回 1
。示例下面的示例對十進制的 15 和 9 使用按位 XOR 運算符,然后將結果賦予變量 x 。 // 15 decimal = 1111
binary // 9 decimal = 1001 binary x = 15 ^ 9 trace(x) // 1111 ^ 1001 =
0110 // returns 6 decimal( = 0110 binary)
6. << (按位向左移位)
可用性 Flash Player 5 。用法 expression1 << expression2 參數(shù) expression1
要向左移位的數(shù)字或表達式。 expression2 將轉換為從 0 到 31 之間整數(shù)的數(shù)字或表達式。返回無。說明運算符(按位);將
expression1 和 expression2 轉換為 32 位整數(shù),然后將 expression1 中的所有位向左移一定的位數(shù),該位數(shù)由
expression2 轉換而來的整數(shù)指定。由于此運算的結果而被清空的位上則填補 0 。將一個值向左移一位等效于將它乘以 2
。示例在下面的示例中,將整數(shù) 1 向左移 10 位。 x = 1 << 10 此運算的結果為 x = 1024 。這是因為十進制的 1 等于二進制的
1 ,二進制的 1 向左移 10 位是二進制的 10000000000 ,而二進制的 10000000000 就是十進制的 1024
。在下面的示例中,將整數(shù) 7 向左移 8 位。 x = 7 << 8 此運算的結果為 x = 1792 。這是因為十進制的 7 等于二進制的 111
,二進制的 111 向左移 8 位是二進制的 11100000000 ,而二進制的 11100000000 就是十進制的 1792 。另請參見
>>= (按位向右移位并賦值) >> (按位向右移位) <<= (按位向左移位并賦值)
7. >> (按位向右移位)
可用性 Flash Player 5 。用法 expression1 >> expression2 參數(shù) expression1
要向右移位的數(shù)字或表達式。 expression2 將轉換為從 0 到 31 之間整數(shù)的數(shù)字或表達式。返回無。說明運算符(按位);將
expression1 和 expression2 轉換為 32 位整數(shù),然后將 expression1 中的所有位向右移一定位數(shù),該位數(shù)由
expression2 轉換而來的整數(shù)指定。移到右側的位被去掉。若要保留原 expression 的符號,則如果 expression1
的最高有效位(最左端的位)為 0 ,那么左側的位都填補 0 ;如果最高有效位為 1 ,那么左側的位都填補 1 。將一個值右移一位等效于將它除以 2
并去掉余數(shù)。示例下面的示例將 65535 轉換為 32 位整數(shù),然后右移 8 位。 x = 65535 >> 8 上述運算的結果如下所示: x =
255 這是因為十進制的 65535 等于二進制的 1111111111111111 ( 16 個 1 ),二進制的
1111111111111111 向右移 8 位是二進制的 11111111 ,而二進制的 11111111 是十進制的 255 。因為這個整數(shù)是
32 位的,最高有效位為 0 ,所以用 0 來填補位。下面的示例將 -1 轉換為 32 位整數(shù),然后右移 1 位。 x = -1 >> 1
上述運算的結果如下所示: x = -1 這是因為十進制的 -1 等于二進制的 11111111111111111111111111111111 (
32 個 1 ),向右移一位使得最低有效位(最右側的位)被去掉而最高有效位被填補上 1 。結果為二進制的
11111111111111111111111111111111 ( 32 個 1 ),表示 32 位整數(shù) -1 。另請參見 >>=
(按位向右移位并賦值)
8. >>> (按位無符號向右移位)
可用性 Flash Player 5 。用法 expression1 >>> expression2 參數(shù) expression1
要向右移位的數(shù)字或表達式。 expression2 將轉換為從 0 到 31
之間整數(shù)的數(shù)字或表達式。返回無。說明運算符(按位);除了由于左側的位總是填補 0 而不保留原 expression 的符號外,該運算符與按位向右移位
( >> ) 運算符相同。示例下面的示例將 -1 轉換為 32 位整數(shù),然后右移 1 位。 x = -1 >>> 1 上述運算的結果如下所示: x
= 2147483647 這是因為十進制的 -1 是二進制的 11111111111111111111111111111111 ( 32 個 1
),當向右(無符號)移 1 位時,最低有效位(最右端的位)被去掉,而最高有效位(最左端的位)被填補上 0 。結果為二進制的
01111111111111111111111111111111 ,表示 32 位整數(shù) 2147483647 。另請參見 >>=
(按位向右移位并賦值)
比較運算符 : 執(zhí)行比較的運算符
9. != (不等于)
可用性 Flash Player 5 。用法 expression1 != expression2 參數(shù)無。返回無。說明運算符(不等于);測試結果與
== 運算符正好相反。如果 expression1 與 expression2 相等,則結果為 false 。與 ==
運算符一樣,的定義取決于所比較的數(shù)據(jù)類型。 - 數(shù)字、字符串和布爾值按值進行比較。 - 變量、對象、數(shù)組和函數(shù)按引用進行比較。示例下面舉例說明 !=
運算符的結果: 5 != 8 返回 true 5 != 5 返回 false 此示例說明在 if 語句中 != 運算符的用法。 a =
"David"; b = "Fool" if (a != b){ trace("David is not a fool"); } 另請參見 !==
(不全等) == (等于) === (全等)
10. !== (不全等)
可用性 Flash Player 6 。用法 expression1 !== expression2 說明運算符;測試結果與 ===
運算符正好相反。除了不轉換數(shù)據(jù)類型外,不全等運算符執(zhí)行的運算與不等于運算符相同。如果 expression1 等于 expression2
,而且它們的數(shù)據(jù)類型也相同,則結果為 false 。與 === 運算符一樣,的定義取決于所比較的數(shù)據(jù)類型。 - 數(shù)字、字符串和布爾值按值進行比較。
- 變量、對象、數(shù)組和函數(shù)按引用進行比較。示例下面的代碼顯示使用等于、全等和不全等運算符的運算所返回的值。 s1 = new
String("5"); s2 = new String("5"); s3 = new String("Hello"); n = new
Number(5); b = new Boolean(true); s1 == s2; // true s1 == s3; // false s1
== n; // true s1 == b; // false s1 === s2; // true s1 === s3; // false s1
=== n; // false s1 === b; // false s1 !== s2; // false s1 !== s3; // true
s1 !== n; // true s1 !== b; // true 另請參見 != (不等于) == (等于) === (全等) -- 八. 運算符 : 在表達式中使用的運算符(二) 1. < (小于)
可用性 Flash Player 4 ; Flash Player 5 。在 Flash 5 中, <
(小于)運算符是能夠處理各種數(shù)據(jù)類型的比較運算符。在 Flash 4 中, < 是數(shù)值運算符。將 Flash 4 文件引入 Flash 5
創(chuàng)作環(huán)境中,必須經(jīng)過一個轉換過程以維護數(shù)據(jù)類型的完整性。下面舉例說明對包含數(shù)值比較的 Flash 4 文件的轉換過程。 Flash 4 文件: x
< y 轉換后的 Flash 5 文件: Number(x) < Number(y) 用法 expression1 < expression2 參數(shù)
expression1 、 expression2 數(shù)字或字符串。說明運算符(比較);比較兩個表達式以確定 expression1 是否小于
expression2 ;如果是,則該運算符返回 true 。如果 expression1 大于或等于 expression2 ,則該運算符返回
false 。使用字母順序計算字符串表達式;所有的大寫字母排在小寫字母的前面。示例下面的示例舉例說明數(shù)數(shù)值比較和字符串比較所返回的 true 和
false 。 3 < 10; // true 10 < 3; // false "Allen" < "Jack"; // true "Jack"
< "Allen"; // false "11" < "3"; //true "11" < 3; // numeric comparison //
false "C" < "abc"; // false "A" < "a"; // true
2. <= (小于等于)
可用性 Flash Player 4 。 Flash 4 文件: x <= y 轉換后的 Flash 5 文件: Number(x) <=
Number(y) 用法 expression1 <= expression2 參數(shù) expression1 、 expression2
數(shù)字或字符串。返回無。說明運算符(比較);比較兩個表達式以確定 expression1 是否小于等于 expression2
;如果是,則該運算符返回 true 。如果 expression1 大于 expression2 ,則該運算符返回 false
。使用字母順序計算字符串表達式;所有的大寫字母排在小寫字母的前面。在 Flash 5 中,小于等于 ( <= )
運算符是能夠處理各種數(shù)據(jù)類型的比較運算符。而在 Flash 4 中, <= 是一個數(shù)值運算符。將 Flash 4 文件引入 Flash 5
創(chuàng)作環(huán)境中,必須經(jīng)過一個轉換過程以維護數(shù)據(jù)類型的完整性。下面舉例說明對包含數(shù)值比較的 Flash 4
文件的轉換過程。示例下面的示例舉例說明比較數(shù)值和比較字符串的 true 和 false 結果: 5 <= 10; // true 2 <= 2;
// true 10 <= 3; // false "Allen" <= "Jack"; // true "Jack" <= "Allen"; //
false "11" <= "3"; //true "11" <= 3; // numeric comparison // false "C" <=
"abc"; // false "A" <= "a"; // true
3. == (等于)
可用性 Flash Player 5 。用法 expression1 == expression2 參數(shù) expression1 、
expression2 數(shù)字、字符串、布爾值、變量、對象、數(shù)組或函數(shù)。返回無。說明運算符(等于);測試兩個表達式是否相等。如果表達式相等,則結果為
true 。的定義取決于參數(shù)的數(shù)據(jù)類型: - 數(shù)字和布爾值按值進行比較,如果它們具有相同的值,則視為相等。 -
對于字符串表達式,如果它們具有相同的字符數(shù),而且這些字符都相同,則這些字符串表達式相等。 -
變量、對象、數(shù)組和函數(shù)按引用進行比較。對于變量,如果兩個變量引用相同的對象、數(shù)組或函數(shù),則它們相等。而兩個單獨的數(shù)組即使具有相同數(shù)量的元素,也永遠不會被視為相等。示例下面的示例將
== 運算符與 if 語句協(xié)同使用: a = "David" , b = "David"; if (a == b){ trace("David is
David"); } 示例這些示例顯示比較混合類型的運算的結果。 x = "5"; y = "5"; trace(x == y); // true
x = "5"; y = "66"; trace(x ==y); // false x = "chris"; y = "steve"; trace
(x == y); //false 另請參見 != (不等于) === (全等) !== (不全等)
4. === (全等)
可用性 Flash Player 6 。用法 expression1 === expression2
說明運算符;測試兩個表達式是否相等;除了不轉換數(shù)據(jù)類型外,全等運算符執(zhí)行的運算與等于運算符相同。如果兩個表達式完全相等(包括它們的數(shù)據(jù)類型都相等),則結果為
true 。的定義取決于參數(shù)的數(shù)據(jù)類型: - 數(shù)字和布爾值按值進行比較,如果它們具有相同的值,則視為相等。 -
對于字符串表達式,如果它們具有相同的字符數(shù),而且這些字符都相同,則這些字符串表達式相等。 -
變量、對象、數(shù)組和函數(shù)按引用進行比較。對于變量,如果兩個變量引用相同的對象、數(shù)組或函數(shù),則它們相等。而兩個單獨的數(shù)組即使具有相同數(shù)量的元素,也永遠不會被視為相等。示例下面的代碼顯示使用等于、全等和不全等運算符的運算所返回的值。
s1 = new String("5"); s2 = new String("5"); s3 = new String("Hello"); n =
new Number(5); b = new Boolean(true); s1 == s2; // true s1 == s3; // false
s1 == n; // true s1 == b; // false s1 === s2; // true s1 === s3; // false
s1 === n; // false s1 === b; // false s1 !== s2; // false s1 !== s3; //
true s1 !== n; // true s1 !== b; // true 另請參見 == (等于) != (不等于) === (全等)
5. >(大于)
可用性 Flash Player 5 。用法 expression1 > expression2 參數(shù) expression1 、
expression2 整數(shù)、浮點數(shù)或字符串。返回無。說明運算符(比較);比較兩個表達式并確定 expression1 是大于
expression2 ( true ) ,還是 expression1 小于等于 expression2 ( false ) 。
>= (大于等于)可用性 Flash Player 4 。 Flash 4 文件: x > y 轉換后的 Flash 5 文件: Number(x)
> Number(y) 用法 expression1 >= expression2 參數(shù) expression1 、 expression2
字符串、整數(shù)或浮點數(shù)。返回無。說明運算符(比較);比較兩個表達式并確定 expression1 是大于等于 expression2 ( true )
,還是 expression1 小于 expression2 ( false ) 。在 Flash 5 中,大于等于 ( >)
是能夠處理各種數(shù)據(jù)類型的比較運算符。而在 Flash 4 中, > 是數(shù)值運算符。將 Flash 4 文件引入 Flash 5
創(chuàng)作環(huán)境中,必須經(jīng)過一個轉換過程以維護數(shù)據(jù)類型的完整性。
八. 運算符 : 在表達式中使用的運算符(三)
賦值 : 執(zhí)行變量賦值的運算符
1. -= (減法賦值)
可用性 Flash Player 4 。用法 expression1 -= expression2 參數(shù) expression1 、
expression2 數(shù)字或計算結果為數(shù)字的表達式。返回無。說明運算符(算術組合賦值);將 expression1 - expression2
的值賦予 expression1 。例如,下面兩個語句是相同的: x -= y; x = x - y; 字符串表達式必須轉換為數(shù)字,否則返回 NaN
。示例下面的示例使用 -= 運算符從 5 中減去 10 ,然后將結果賦予變量 x 。 x = 5; y = 10; x -= y trace(x);
//returns -5 示例下面的示例說明如何將字符串轉換為數(shù)字。 x = "5"; y = "10"; x -= y; trace(x); //
returns -5
2. %= (模賦值)
可用性 Flash Player 4 。用法 expression1 %= expression2 參數(shù)無。返回無。說明運算符(算術復合賦值);將
expression1 % expression2 的值賦予 expression1 。例如,下面兩個表達式是相同的: x %= y x = x %
y 示例下面的示例將值 4 賦予變量 x 。 x = 14; y = 5; trace(x %= y); // returns 4 另請參見 %
(模)
3. &= (按位 AND 賦值)
可用性 Flash Player 5 。用法 expression1 &= expression2 參數(shù)無。返回無。說明運算符(按位組合賦值);將
expression1 & expression2 的值賦予 expression1 。例如,下面兩個表達式是相同的。 x &= y x = x &
y 示例下面的示例將值 9 賦予 x 。 x = 15; y = 9; trace(x &= y); // returns 9 另請參見 & (按位
AND )
4. *= (相乘賦值)
可用性 Flash Player 4 。用法 expression1 *= expression2 參數(shù)無。返回無。說明運算符(算術組合賦值);將
expression1 * expression2 的值賦予 expression1 。例如,下面兩個表達式是相同的: x *= y x = x *
y 示例下面的示例將值 50 賦予變量 x 。 x = 5; y = 10; trace (x *= y); // returns 50
示例以下示例的第二行和第三行計算等號右側的表達式,然后將結果賦予 x 和 y 。 i = 5; x = 4 - 6; y = i + 2;
trace(x *= y); // returns -14 另請參見 * (乘號)
5. |= (按位 OR 賦值)
可用性 Flash Player 5 。用法 expression1 |= expression2 參數(shù) expression1 、
expression2 數(shù)字或變量。返回無。說明運算符(按位組合賦值);將 expression1 | expression2 的值賦予
expression1 。例如,下面兩個語句是相同的: x |= y; x = x | y; 示例下面的示例使用了 |= 運算符: // 15
decimal = 1111 binary x = 15; // 9 decimal = 1001 binary y = 9; trace(x |=
y); // 1111 |= 1001 // returns 15 decimal (= 1111 binary) 另請參見 | (按位 OR )
/= (除賦值)可用性 Flash Player 4 。用法 expression1 /= expression2 參數(shù) expression1 、
expression2 數(shù)字或計算結果為數(shù)字的變量。返回無。說明運算符(算術組合賦值);將 expression1 / expression2
的值賦予 expression1 。例如,下面兩個語句是相同的: x /= y x = x / y 示例下面的代碼舉例說明如何將 /=
運算符與變量和數(shù)字協(xié)同使用。 x = 10; y = 2; x /= y; // x now contains the value 5
6. ^= (按位 XOR 賦值)
可用性 Flash Player 5 。用法 expression1 ^= expression2 參數(shù) expression1 、
expression2 整數(shù)和變量。返回無。說明運算符(按位組合賦值);將 expression1 ^ expression2 的值賦予
expression1 。例如,下面兩個語句是相同的: x ^= y x = x ^ y 示例下面是一個 ^= 運算的示例。 // 15
decimal = 1111 binary x = 15; // 9 decimal = 1001 binary y = 9; trace(x ^=
y); //returns 6 decimal ( = 0110 binary) 另請參見 ^ (按位 XOR )
7. += (加法賦值)
可用性 Flash Player 4 。用法 expression1 += expression2 參數(shù) expression1 、
expression2 數(shù)字或字符串。返回無。說明運算符(算術組合賦值);將 expression1 + expression2 值賦予
expression1 。例如,下面兩個語句的結果是相同的: x += y; x = x + y; 此運算符也可以執(zhí)行字符串連接運算。加法運算符
(+) 的所有規(guī)則適用于加法賦值 (+=) 運算符。示例下面的示例顯示 += 運算符的數(shù)值用法。 x = 5; y = 10; x += y;
trace(x); //x returns 15 此示例對字符串使用 += 運算符,并將“ My name is Gilbert ”發(fā)送到輸出窗口。
x = "My name is " x += "Gilbert" trace (x) 另請參見 + (加號)
8. <<= (按位向左移位并賦值)
可用性 Flash Player 5 。用法 expression1 <<= expression2 參數(shù) expression1
要向左移位的數(shù)字或表達式。 expression2 將轉換為從 0 到 31
之間整數(shù)的數(shù)字或表達式。返回無。說明運算符(按位組合賦值);此運算符執(zhí)行按位向左移位運算,然后將該內(nèi)容作為結果存儲在 expression1
中。下面的兩個表達式是等效的。另請參見 << (按位向左移位) >>= (按位向右移位并賦值) >> (按位向右移位)
9. = (賦值)
可用性 Flash Player 4 。 Flash 4 文件: x = y 轉換后的 Flash 5 文件: Number(x) ==
Number(y) 用法 expression1 = expression2 參數(shù) expression1 變量、數(shù)組元素或?qū)ο髮傩浴?
expression2 任何類型的值。返回無。說明運算符;將 expression2 (位于右側的參數(shù))的類型賦予 expression1
中的變量、數(shù)組元素或?qū)傩?。?Flash 5 中, = 為賦值運算符,而 == 運算符用于計算相等性。在 Flash 4 中, =
為數(shù)值等于運算符。將 Flash 4 文件引入 Flash 5
創(chuàng)作環(huán)境中,必須經(jīng)過一個轉換過程以維護數(shù)據(jù)類型的完整性。示例下面的示例使用賦值運算符將數(shù)字數(shù)據(jù)類型賦予變量 x 。 x = 5
下面的示例使用賦值運算符將字符串數(shù)據(jù)類型賦予變量 x 。 x = "hello" 另請參見 == (等于)
-- 八. 運算符 : 在表達式中使用的運算符(四)
1. >>= (按位向右移位并賦值)
可用性 Flash Player 5 。用法 expression1 =>> expression2 參數(shù) expression1
要向左移位的數(shù)字或表達式。 expression2 將轉換為從 0 到 31
之間整數(shù)的數(shù)字或表達式。返回無。說明運算符(按位組合賦值);此運算符執(zhí)行按位向右移位運算,然后將該內(nèi)容作為結果存儲在 expression1
中。示例下面的兩個表達式是等效的。下面加有注釋的代碼使用按位 ( >>= ) 運算符。這也是使用所有按位運算符的示例。 function
convertToBinary(number){ var result = ""; for (var i=0; i<32; i++) { //
Extract least significant bit using bitwise AND var lsb = number & 1; //
Add this bit to our result string result = (lsb ? "1" : "0") + result; //
Shift number right by one bit, to see next bit number >>= 1;} return
result; } trace(convertToBinary(479)); // Returns the string
00000000000000000000000111011111 // The above string is the binary
representation of the decimal // number 479 另請參見 << (按位向左移位)
2. >>>= (按位無符號向右移位并賦值)
可用性 Flash Player 5 。用法 expression1 >>>= expression2 參數(shù) expression1
要向左移位的數(shù)字或表達式。 expression2 將轉換為從 0 到 31
之間整數(shù)的數(shù)字或表達式。返回無。說明運算符(按位組合賦值);執(zhí)行無符號按位向右移位運算,然后將該內(nèi)容作為結果存儲在 expression1
中。下面的兩個表達式是等效的:另請參見 >>> (按位無符號向右移位) >>= (按位向右移位并賦值)
邏輯運算符 : 執(zhí)行邏輯運算的運算符
3. ! (邏輯 NOT )
可用性 Flash Player 4 。用法 ! expression 參數(shù)無。返回無。說明運算符(邏輯);對變量或表達式的布爾值取反。如果
expression 是絕對值或轉換值為 true 的變量,則 ! expression 的值為 false 。如果表達式 x && y
的計算結果為 false ,則表達式 !(x && y) 的計算結果為 true 。下面的表達式說明使用 ! 運算符的結果: ! true 返回
false ! false 返回 true 示例在下面的示例中,變量 happy 被設置為 false 。 if 條件對 !happy
條件進行計算,如果該條件為 true ,則 trace 動作向輸出窗口發(fā)送一個字符串。 happy = false; if (!happy) {
trace("don\'t worry, be happy"); }
&& (短路 AND )可用性 Flash Player 4 。用法 expression1 && expression2
參數(shù)無。返回無。說明運算符(邏輯);對一個或兩個表達式的值執(zhí)行布爾運算。計算 expression1
(該運算符左側的表達式),當此表達式的計算結果為 false 時返回 false 。如果 expression1 的計算結果為 true ,則計算
expression2 (該運算符右側的表達式)。如果 expression2 的計算結果為 true ,則最終結果為 true ;否則,為
false 。示例此示例用 && 運算符執(zhí)行一個確定游戲者是否已經(jīng)贏得游戲的測試。在游戲過程中,游戲者贏得一輪或者得到計分點時,變量 turns 和
score 會進行更新。在 3 輪之內(nèi)游戲者的得分達到或超過 75 時,下面的腳本就在輸出窗口中顯示“ You Win the Game! ”。
turns=2; score=77; winner = (turns <= 3) && (score >= 75); if (winner) {
trace("You Win the Game!"); } else { trace("Try Again!"); }
4. || (邏輯 OR )
可用性 Flash Player 4 。用法 expression1 || expression2 參數(shù) expression1 、
expression2 布爾值或轉換為布爾值的表達式。返回無。說明運算符(邏輯);計算 expression1 和 expression2
。如果其中任何一個或者兩個表達式的計算結果為 true ,則結果為 true ;只有當兩個表達式的計算結果都為 false 時,結果才為 false
。邏輯 OR 運算符可用于任意多個操作數(shù);只要任意一個操作數(shù)的計算結果為 true ,則結果為 true 。對于非布爾表達式,邏輯 OR 運算符使得
Flash 對左側的表達式進行計算;如果左側的表達式可以轉換為 true ,則結果為 true
。否則,計算右側的表達式,而且結果就是該表達式的值。示例下面的示例在一個 if 語句中使用 || 運算符。第二個表達式的計算結果為 true
,因此最終結果為 true : x = 10 y = 250 start = false if(x > 25 || y > 200 ||
start){ trace(\'the logical OR test passed\'); }
示例此示例演示非布爾表達式是如何導致意外結果的。如果左側的表達式轉換為 true ,則返回該結果,而不再轉換右側的表達式。 function
fx1(){ trace ("fx1 called"); returns true; } function fx2(){ trace ("fx2
called"); return true; } if (fx1() || fx2()){ trace ("IF statement
entered"); } // The following is sent to the Output window: // fx1 called
// IF statement entered
其他運算符 : 特殊運算符
5. --(遞減)
可用性 Flash Player 4 。用法 --expression expression-- 參數(shù)無。返回無。說明運算符(算術);從
expression 中減 1 的預先遞減和滯后遞減一元運算符。此運算符的預先遞減格式 ( -- expression ) 從 expression
中減去 1 ,然后返回結果。此運算符的滯后遞減格式 ( expression-- ) 從 expression 中減去 1 然后返回
expression 的初始值(即減去 1 之前的值)。示例此運算符的預先遞減格式將 x 遞減為 2 ( x - 1 = 2 ) ,并將結果返回給
y : x = 3; y = --x; //y is equal to 2 此運算符的滯后遞減格式將 x 遞減為 2 ( x - 1 = 2 )
,并將 x 的初始值作為結果返回給 y : x = 3; y = x-- //y is equal to 3
6. ?: (條件)
可用性 Flash Player 4 。用法 expression1 ? expression2 : expression3 參數(shù)
expression1 計算結果為布爾值的表達式,通常為像 x < 5 這樣的比較表達式。 expression2 、 expression3
任何類型的值。返回無。說明運算符;指示 Flash 計算 expression1 ,如果 expression1 的值為 true ,則它返回
expression2 的值;否則,它返回 expression3 的值。示例下面的語句因為 expression1 的計算結果為 true
,所以將變量 x 的值賦予變量 z : x = 5; y = 10; z = (x < 6) ? x: y; trace (z); //
returns 5
7. ++ (遞增)
可用性 Flash Player 4 。用法 ++expression expression++ 參數(shù)無。返回無。說明運算符(算術);將
expression 加 1 的預先遞增和滯后遞增一元運算符。 expression 可以是變量、數(shù)組元素或?qū)ο髮傩?。此運算符的預先遞增格式 (
++expression ) 將 expression 加 1 ,然后返回結果。此運算符的滯后遞增格式 ( expression++ ) 將
expression 加 1 并返回 expression 的初始值(即加上 1 之前的值)。此運算符的預先遞增格式將 x 遞增為 2 ( x +
1 = 2 ) ,并將結果返回給 y : x = 1; y = ++x //y is equal to 2 此運算符的滯后遞增格式將 x 遞增為 2
( x + 1 = 2 ) ,并將 x 的初始值作為結果返回給 y : x = 1; y = x++; //y is equal to 1
示例下面的示例將 ++ 用作滯后遞增運算符,從而使 while 循環(huán)運行 5 次。 i = 0; while(i++ < 5){
trace("this is execution " + i); } 此示例將 ++ 用作預先遞增運算符。 var a = []; var i =
0; while (i < 10) { a.push(++i); } trace(a.join()); 此腳本在輸出窗口中顯示以下結果:
1,2,3,4,5,6,7,8,9,10 下面的示例將 ++ 用作滯后遞增運算符。 var a = []; var i = 0; while (i
< 10) { a.push(i++); } trace(a.join()); 此腳本在輸出窗口中顯示以下結果:
0,1,2,3,4,5,6,7,8,9
8. instanceof
可用性 Flash Player 6 。用法 object instanceof class 參數(shù) object 動作腳本對象。 class
對動作腳本構造函數(shù)(例如 String 或 Date )的引用。返回如果 object 是 class 的實例,則 instanceof 返回
true ;否則, instanceof 返回 false 。說明運算符;確定某對象是否屬于指定的類。測試 object 是否為 class
的實例。如果該構造函數(shù)的原型對象位于此動作腳本對象的原型鏈中,則此動作腳本對象是該類的實例。 instanceof
運算符不會將原始類型轉換為包裝對象。例如,下面的代碼返回 true : new String("Hello") instanceof String
而下面的代碼返回 false : "Hello" instanceof String 示例為了說明 instanceof
運算符的算法,下面的示例顯示了 instanceof 運算符在其被編碼為動作腳本函數(shù)時可能的外觀形式。 function instanceof
(theObject, theClass){ while ((theObject = theObject.__proto__) != null) {
if (theObject == theClass.prototype) { return true; } } return false; }
另請參見 typeof
9. typeof
可用性 Flash Player 5 。用法 typeof expression 參數(shù) expression
字符串、影片剪輯、按鈕、對象或函數(shù)。說明運算符;放在單個參數(shù)前的一元運算符。 typeof 運算符使 Flash 解釋程序評估 expression
;其結果為指定該表達式是一個字符串、影片剪輯、對象還是函數(shù)的字符串。下表顯示 typeof 運算符對各種表達式執(zhí)行的結果:參數(shù)輸出字符串
string 影片剪輯 movieclip 按鈕 object 文本字段 object 數(shù)字 number 布爾值 boolean 對象
object 函數(shù) function
void 可用性 Flash Player 5 。用法 void ( expression ) 說明運算符;一個放棄 expression
的值并返回未定義值的一元運算符。 void 運算符經(jīng)常用于使用 == 運算符測試未定義值的比較運算中。
算術運算符 : 執(zhí)行算術運算的運算符
10. -
(負號)可用性 Flash Player 4 。用法(符號反轉) – expression (減法) expression1 -
expression2 參數(shù)無。返回無。說明運算符(算術);用于符號反轉或減法運算。用法 1 :用于符號反轉時,它將數(shù)值 expression
的符號反轉。用法 2 :用于減法時,它對兩個數(shù)值表達式執(zhí)行算術減法運算,從 expression1 中減去 expression2
。兩個表達式都為整數(shù)時,差為整數(shù)。其中任何一個或兩個表達式為浮點數(shù)時,差為浮點數(shù)。示例用法 1 :下面的語句將表達式 2 + 3 的符號反轉。
-(2 + 3) 結果為 -5 。用法 2 :下面的語句從整數(shù) 5 中減去整數(shù) 2 。 5 - 2 結果為 3 ,是一個整數(shù)。用法 2
:下面的語句從浮點數(shù) 3.25 中減去浮點數(shù) 1.5 。 3.25 - 1.5 結果為 1.75 ,是一個浮點數(shù)。
11. % (模)
可用性 Flash Player 4 。在 Flash 4 文件中, % 運算符在 SWF 文件中展開為 x - int(x/y) * y
,而且可能不如在 Flash Player 的后續(xù)版本中那樣快速和精確。用法 expression1 % expression2
參數(shù)無。返回無。說明運算符(算術);計算 expression1 除以 expression2 的余數(shù)。如果兩個 expression
參數(shù)中有一個是非數(shù)字值,則模運算符嘗試將它們轉換為數(shù)字。 expression 可以是數(shù)字或轉換為數(shù)值的字符串。示例下面是一個使用模 ( %)
運算符的數(shù)字示例。 trace (12 % 5); // returns 2 trace (4.3 % 2.1 ); // returns
approximately 0.1
12. (乘號)
可用性 Flash Player 4 。用法 expression1 * expression2
參數(shù)無。返回無。說明運算符(算術);將兩個數(shù)值表達式相乘。如果兩個表達式都是整數(shù),則積為整數(shù)。如果其中任何一個或兩個表達式是浮點數(shù),則積為浮點數(shù)。示例下面的語句將整數(shù)
2 與 3 相乘: 2 * 3 結果為 6 ,是一個整數(shù)。示例下面的語句將浮點數(shù) 2.0 與 3.1416 相乘。 2.0 * 3.1416 結果為
6.2832 ,是一個浮點數(shù)。
/ (除號)可用性 Flash Player 4 。用法 expression1 / expression2 參數(shù) expression
數(shù)字或計算結果為數(shù)字的變量。返回無。說明運算符(算術);將 expression1 除以 expression2
。除法運算的結果為雙精度浮點數(shù)。示例下面的語句將浮點數(shù) 22.0 除以 7.0 ,然后在輸出窗口中顯示結果。 trace(22.0 / 7.0);
結果為 3.1429 ,是一個浮點數(shù)。
13. + (加號)
可用性 Flash Player 4 ; Flash Player 5 。在 Flash 5 中, +
既可以是數(shù)值運算符,也可以是字符串連接符,這要取決于參數(shù)的數(shù)據(jù)類型。在 Flash 4 中, + 只是數(shù)值運算符。將 Flash 4 文件引入
Flash 5 創(chuàng)作環(huán)境中,必須經(jīng)過一個轉換過程以維護數(shù)據(jù)類型的完整性。下面的示例舉例說明對包含數(shù)值比較的 Flash 4 文件的轉換過程:
Flash 4 文件: x + y 轉換后的 Flash 5 文件: Number(x) + Number(y) 用法 expression1 +
expression2 參數(shù) expression1 、 expression2
數(shù)字或字符串。返回無。說明運算符;將數(shù)值表達式相加或者連接(合并)字符串。如果其中一個表達式為字符串,則所有其他表達式都被轉換為字符串,然后連接起來。兩個表達式都為整數(shù)時,和為整數(shù);其中一個或兩個表達式為浮點數(shù)時,和為浮點數(shù)。示例下面的示例連接兩個字符串,然后在輸出窗口中顯示結果。
name = "Cola"; instrument = "Drums"; trace (name + " plays " +
instrument); 示例與動態(tài)和輸入文本字段相關聯(lián)的變量是字符串數(shù)據(jù)類型。在下面的示例中,變量 deposit
是舞臺上的一個輸入文本字段。在用戶輸入存款數(shù)目后,該腳本嘗試將 deposit 加到 oldBalance 上。然而,由于 deposit
是字符串數(shù)據(jù)類型,因此腳本連接(合并成一個字符串)變量的值,而不是對它們求和。 oldBalance = 1345.23;
currentBalance = deposit + oldBalance; trace (currentBalance);
例如,如果用戶在存款文本字段輸入 475 ,則 trace 動作將值 4751345.23 發(fā)送到輸出窗口。 若要更正這點,可使用 Number
函數(shù)將字符串轉換為數(shù)字,如下所示: currentBalance = Number(deposit) + oldBalance; 示例此語句將整數(shù)
2 和 3 相加,然后將計算結果整數(shù) 5 顯示在輸出窗口中: trace (2 + 3); 此語句將浮點數(shù) 2.5 和 3.25
相加,然后將結果浮點數(shù) 5.75 顯示在輸出窗口中: trace (2.5 + 3.25); 另請參見 add