一、 影片控制
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 當鼠標指針在按鈕之內時按下按鈕后,將鼠標指針移到按鈕之外,此時釋放鼠標按鈕。 - 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 ,則調用 play 動作,而且播放頭在時間軸中向前移動。如果用戶輸入 Steve 以外的任何其他內容,則不播放影片,而顯示帶有變量名 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 頁中調用 JavaScript 函數(shù) moviename_DoFScommand 。 moviename 是 Flash Player 影片的名稱,該名稱由 EMBED 標簽的 NAME 屬性指定,或由 OBJECT 標簽的 ID 屬性指定。如果為 Flash Player 影片分配名稱 myMovie ,則調用的 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 字符串的內容。 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 的文檔加載到窗口中,或將變量傳遞到位于所定義 URL 的另一個應用程序。若要測試此動作,請確保要加載的文件位于指定的位置。若要使用絕對 URL (例如, http://www. ),則需要網(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)作應用程序的測試模式下測試 文件,必須將所有的 文件存儲在同一文件夾中,而且其文件名不能包含文件夾或磁盤驅動器說明。 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 圖像,該目錄與調用 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)作應用程序的測試影片模式下測試 文件,必須將所有的 文件存儲在同一文件夾中,并且其文件名不能包含文件夾或磁盤驅動器說明。 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 文件加載到影片中。對于圖像和 文件,在文件加載時,圖像的左上角均與舞臺的左上角對齊。另外,在這兩種情況下,加載的文件均繼承旋轉和縮放設置,并且原始內容將被覆蓋。使用 unloadMovieNum 動作可刪除使用 loadMovieNum 動作加載的影片或圖像。示例此示例將 JPEG 圖像“ image45.jpg ”加載到 Flash Player 的級別 2 中。 loadMovieNum("http://www./Article/UploadFiles/200708/20070828061932521.jpg", 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 動作明確停止為止,或者直到為其他影片剪輯調用了 startDrag 動作為止。示例若要創(chuàng)建用戶可以放在任何位置的影片剪輯,可將 startDrag 和 stopDrag 動作附加到該影片剪輯內的某個按鈕上。 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ù)中調用它時,或作為傳遞給 setInterval 的函數(shù)或方法的一部分進行調用時,該動作更新顯示(與為影片設置的每秒幀數(shù)無關)。如果對 updateAfterEvent 的調用不在 onClipEvent 處理函數(shù)中,也不是傳遞給 setInterval 的函數(shù)或方法的一部分,則 Flash 忽略該調用。另請參見 onClipEvent setInterval 1/1 四. 變量 : 修改和訪問變量的動作
1. delete 可用性 Flash Player 5 。用法 delete reference 參數(shù) reference 要消除的變量或對象的名稱。返回無。說明運算符;銷毀由 reference 參數(shù)指定的對象或變量,如果該對象被成功刪除,則返回 true ;否則返回 false 值。該運算符對于釋放腳本所用的內存非常有用。雖然 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 ,則不再有指向該對象的任何引用,該對象將被銷毀,同時釋放它所使用的內存。另請參見 var 2/2 2. set variable 可用性 Flash Player 4 。用法 set( variable , expression ) 參數(shù) variable 保存 expression 參數(shù)值的標識符。 expression 分配給變量的值。返回無。說明動作;為變量賦值。 variable 是保存數(shù)據(jù)的容器。容器本身始終不變,但內容可以更改。通過在影片播放時更改變量的值,可以記錄和保存有關用戶所執(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ù)內聲明局部變量,那么變量就是為該函數(shù)定義的,且在該函數(shù)調用結束時到期。如果變量不是在塊 ( {} ) 內聲明的,但使用 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 實例中調用。若要查找 statement(s) 參數(shù)中某標識符的值,動作腳本將從 object 指定的范圍鏈的開頭開始查找,并以特定的順序在范圍鏈的每個級別中搜索該標識符。 with 動作使用范圍鏈解析標識符,該范圍鏈從下面列表中的第一項開始,一直到最后一項結束: - 在 with 動作最里面的 object 參數(shù)中指定的對象。 - 在 with 動作最外面的 object 參數(shù)中指定的對象。 - 激活的對象。(當調用函數(shù)時自動創(chuàng)建的臨時對象,該函數(shù)包含函數(shù)所調用的局部變量。) - 包含當前執(zhí)行腳本的影片剪輯。 - 全局對象(諸如 Math 與 String 的內置對象)。若要在 with 動作中設置變量,該變量必須已在 with 動作外部進行了聲明,或者您必須輸入該變量所生存時間軸的完整路徑。如果未聲明該變量就在 with 動作中設置它,則該 with 動作將根據(jù)范圍鏈尋找該值。如果該變量還不存在,則將在調用 with 動作的時間軸上設置此新值。在 Flash 5 中, with 動作替換了被否決的 tellTarget 動作。建議您使用 with 而不使用 tellTarget ,因為前者是對 ECMA-262 標準的一個標準動作腳本擴展功能。 with 與 tellTarget 動作的主要差異在于 with 采用對影片剪輯或其他對象的引用作為其參數(shù),而 tellTarget 采用標識影片剪輯的目標路徑字符串作為其參數(shù),且不能用于指向對象。示例下面的示例設置 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 動作對于在范圍鏈列表中同時訪問多項十分有用。在下面的示例中,內置 Math 對象被放置在范圍鏈的前面。將 Math 設置為默認對象可以將標識符 cos 、 sin 與 PI 分別解析為、 Math.sin 與 Math.PI 。標識符 a 、 x 、 y 與 r 不是 Math 對象的方法或屬性,但由于它們存在于函數(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 動作內特定 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 動作檢查對象的每一邊是否都在特定的邊界內: // 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)體內要執(zhí)行的指令。說明動作;一種循環(huán)結構,首先計算 init (初始化)表達式一次,只要 condition 的計算結果為 true ,則按照以下順序開始循環(huán)序列,執(zhí)行 statement ,然后計算 next 表達式。一些屬性無法用 for 或 for..in 動作進行枚舉。例如, Array 對象的內置方法( 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 對象的內置方法( Array.sort 和)不包括在 Array 對象的枚舉中,而影片剪輯屬性,如 _x 和 _y ,也不能枚舉。 for..in 結構迭代所迭代對象的原型鏈中對象的屬性。如果 child 的原型為 parent ,則用 for..in 迭代 child 的屬性,也將迭代 parent 的屬性。 for..in 動作枚舉對象原型鏈中的所有對象。首先枚舉該對象的屬性,接著枚舉其直接原型的屬性,然后枚舉該原型的原型的屬性,依次類推。 for..in 動作對于同一屬性名不枚舉兩次。如果對象 child 具有原型 parent ,而這兩個對象都包含屬性 prop ,則對 child 調用的 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 將運行條件后面花括號 ( {} ) 內的語句。如果條件為 false ,則 Flash 跳過花括號內的語句,運行花括號后面的語句。使用 if 動作可在腳本中創(chuàng)建分支邏輯。示例在下面的示例中,括號內的條件對變量 name 進行計算以查看其是否具有文本值“ Erica ”。如果有,則運行花括號內的 play 動作。 if(name == "Erica"){ play(); } 示例下面的示例使用 if 動作計算用戶何時釋放影片中的可拖動對象。如果對象在拖動后 300 毫秒之內被釋放,則條件的計算結果為 true ,并運行花括號內的語句。這些語句設置變量以存儲對象的新位置、拖放對象的難易程度和拖放對象時的速度。 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 調整所復制影片剪輯的各種屬性。循環(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)建和調用函數(shù)的動作
1. call 可用性 Flash Player 4 。在 Flash 5 中已不鼓勵使用此動作,推薦改用 function 動作。用法 call( frame ) 參數(shù) frame 時間軸中幀的標簽或編號。返回無。說明動作;執(zhí)行被調用幀中的腳本,而不將播放頭移動到該幀。一旦執(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ù),然后從影片的其他腳本調用它。定義函數(shù)時,還可以為其指定參數(shù)。參數(shù)是函數(shù)要對其進行操作的值的占位符。每次調用函數(shù)時,可以向其傳遞不同的參數(shù)。這使您可以在不同場合重復使用一個函數(shù)。在函數(shù)的 statement(s) 中使用 return 動作可使函數(shù)返回或生成一個值。用法 1 :用指定的 functionname 、 parameters 和 statement(s) 聲明一個 function 。當調用函數(shù)時,則調用函數(shù)聲明。允許提前引用;在同一“動作”列表中,函數(shù)可以先調用后聲明。一個函數(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ù)組或對象。此參數(shù)是可選的。返回如果提供了 expression 參數(shù),則返回計算的結果。說明動作;指定由函數(shù)返回的值。 return 動作計算 expression 并將結果作為它在其中執(zhí)行的函數(shù)的值返回。 return 動作導致函數(shù)停止運行,并用返回值代替函數(shù)。如果單獨使用 return 語句,它返回 null 。示例下面的示例在 sum 函數(shù)體內使用 return 動作,以返回三個參數(shù)相加后的值。下一行代碼調用 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ā)布或導出影片時參數(shù)中指定的文件的內容。當您進行測試、發(fā)布或導出時, #include 動作將被調用。當執(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 調用 setInterval 函數(shù)后返回的對象。返回無。說明動作;清除對 setInterval 函數(shù)的調用。示例下面的示例首先設置一個間隔調用,然后將其清除: 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ù)調用的方法的名稱。 interval 對 function 或 methodName 參數(shù)的兩次調用之間的時間,以毫秒為單位。 arg1 、 arg2 ... argn 可選參數(shù),將傳遞給 function 或 methodName 參數(shù)。返回間隔標識符,可以將該標識符傳遞給 clearInterval 以取消該間隔。說明動作;在播放影片時,每隔一定的時間間隔,就調用函數(shù)、方法或對象??梢允褂瞄g隔函數(shù)更新來自數(shù)據(jù)庫的變量或更新時間顯示。如果 interval 小于影片幀頻(例如,每秒 10 幀 (10 fps) 相當于 100 毫秒),則按照盡可能接近 interval 的時間間隔調用間隔函數(shù)。而且必須使用 updateAfterEvent 函數(shù)來確保以足夠的頻率刷新屏幕。如果 interval 大于影片幀頻,則只有在每次播放頭進入幀時才調用該間隔函數(shù),以便最小化每次刷新屏幕時的影響。上述的第一種語法示例是標準模式下“動作”面板中 setInterval 函數(shù)的默認語法。若要使用第二種語法示例,必須在專家模式下使用“動作”面板。示例用法 1 :下面的示例每隔 1000 毫秒(每隔 1 秒)調用一次匿名函數(shù)。 setInterval( function(){ trace("interval called"); }, 1000 ); 用法 2 :下面的示例定義兩個回調函數(shù)并分別調用它們。對 setInterval 函數(shù)的兩次調用的結果都是每隔 1000 毫秒就向輸出窗口發(fā)送字符串。對 setInterval 的第一個調用將調用 callback1 函數(shù),該函數(shù)包含 trace 動作。對 setInterval 的第二個調用將字符串作為參數(shù)傳遞給函數(shù) callback2 。 function callback1() { trace("interval called"); } function callback2(arg) { trace(arg); } setInterval( callback1, 1000 ); setInterval( callback2, 1000, "interval called" ); 用法 3 :此示例使用對象的方法。當要調用為對象定義的方法時,必須使用此語法。只能在專家模式下使用此語法。 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 語法來調用對象的方法,如下所示: 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ù)。可以使用“發(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 要對括號中的內容執(zhí)行的函數(shù)。一系列參數(shù),在將其結果作為參數(shù)傳遞給括號外的函數(shù)之前執(zhí)行這些參數(shù)。返回無。說明運算符;對一個或多個參數(shù)執(zhí)行分組運算,或者括住一個或多個參數(shù)并將它們作為參數(shù)傳遞給括號外的函數(shù)。用法 1 :控制表達式中運算符的執(zhí)行順序。括號覆蓋正常的優(yōu)先級順序,從而導致先計算括號內的表達式。如果括號是嵌套的,則先計算最里面括號中的內容,然后計算較靠外括號中的內容。用法 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í)行按位向左移位運算,然后將該內容作為結果存儲在 expression1 中。下面的兩個表達式是等效的。另請參見 << (按位向左移位) >>= (按位向右移位并賦值) >> (按位向右移位) 9. = (賦值) 可用性 Flash Player 4 。 Flash 4 文件: x = y 轉換后的 Flash 5 文件: Number(x) == Number(y) 用法 expression1 = expression2 參數(shù) expression1 變量、數(shù)組元素或對象屬性。 expression2 任何類型的值。返回無。說明運算符;將 expression2 (位于右側的參數(shù))的類型賦予 expression1 中的變量、數(shù)組元素或屬性。在 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í)行按位向右移位運算,然后將該內容作為結果存儲在 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í)行無符號按位向右移位運算,然后將該內容作為結果存儲在 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 輪之內游戲者的得分達到或超過 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ù)組元素或對象屬性。此運算符的預先遞增格式 ( ++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 |
|