Flash action代碼格式及規範

來源:互聯網
上載者:User
規範
   Actions acript 的每行語句都以分號 ";" 結束. 不同於 BASIC 語言, Actions cript 語句同 C++, Java, Pascal 一樣允許分多行書寫, 即允許將一條很的長語句分割成兩個或更多程式碼, 只要在結尾有個分號就行了. 允許語句分行書寫的唯一缺點是(至少對許多熟悉 BASIC 的人而言): 語句末尾不能忘記加分號. 語句分行唯一的限制是字串不能跨行, 即兩個分號必須在同一行.
  分行書寫長語句也是一個很好的排版辦法, 例如下面的語句段(目前你不需理解下面的語句是什麼意思, 在雙斜杠後面是注釋):
duplicateMovieClip( "MyOldMovieClip", //舊的 MovieClip 執行個體名
  "MyNewMovieClip", 999 ); //新複製的執行個體名和所在層次
setProperty( "MyNewMovieClipNameIsNewMC", //要修改其屬性的 MovieClip 執行個體名
_alpha, "30"); //修改其透明度為 30%
  但是在 Flash MX 中似乎自動格式化功能不是很完善. 上面的代碼可以運行通過, 但在使用自動格式化時會出錯. 問題就在於插入其間的備註陳述式. 畢竟上面我寫的例子並不是很好地符合 Flash MX 的文法規範(但按照 C 語言的文法來看是絕對沒問題的), 所以請記住: 只有在語句很長或是很複雜的情況下才使用多行書寫.
一個好的程式員會懂得在程式碼中加入注釋. 但也許你會說: 沒關係, 我知道我寫的是什麼. 但是假如你是在 1 個月後再讀這段代碼呢? 很明顯, 你記不住. 所以多打幾個字又有什麼麻煩的?
給 Actions cript 代碼加註釋使用下面格式:
statements; //這是單行注釋, 由雙斜杠開頭,這行的後面部份都是注釋內容
statements; /* 這也是注釋
只不過可以換行 */
就這麼簡單(卻又十分有用). 注意 /* 和 */ 已經不建議使用了(因為必須配對, 所以經常會導致錯誤).
除了注釋, 增加代碼可讀性的另一途徑是使用代碼排版格式. 下面是一段具有高可讀性的代碼:
//計算 x 階乘的函數
function f(x) {
if (x<=0) { //假如 x 小於等於 0 return 1; //返回 1
} else {
return x*f(x-1); //否則返回階乘結果
}
}
Flash MX 之前版本必須由程式員自行編排代碼格式, 而 Flash MX 的 Action 面板多了一個 Auto Format (自動格式化)按鈕 , 可以用它來自動格式化代碼(同時也會進行語法檢查, 相當方便). 格式化的選項可以在 Action 面板快顯功能表的 Auto Format Options 項對應的對話方塊中設定. 下面是對 Actions 面板的一點介紹:
文法著色和代碼提示
文法著色(Syntax Hightlighting)是許多程式設計語言的 IDE (整合式開發環境)所具備的功能. Flash 也具有這項功能. 文法著色的顏色可以在 Action 面板快顯功能表的 Preferences... 項對應的對話方塊中設定.
對此, 沒什麼好詳細解說的. 只是希望大家能利用文法著色來發現錯誤和閱讀代碼.
Flash MX 新增加的代碼提示功能(Code Hints)對於熟悉 Visual Studio 6.0+ 版本的讀者而言並不陌生. 例如在輸入了一個對象名後再輸入".", 就會顯示相關的屬性和方法列表; 在輸入了函數名後輸入"(", 就會顯示相關的函數格式. 具體的可在輸入代碼時自己體會.
文法規範 關鍵字
關鍵字是任何一種語言程式的基本構造單位. 它是程式語言的保留字(Reserved Words), 不能被作為其它用途(不能作為自訂的變數, 函數, 對象名).
Flash 的 Actions cript 中關鍵字不是很多, 下面的它們的列表:
Flash MX Actions cript 的關鍵字
break 跳出迴圈體 instanceof 返回對象所屬的類(Class)
case 定義一個 switch 語句的條件選擇語句塊 new 使用建構函式(Constructor)建立一個新的對象
continue 跳到迴圈體的下一項目 return 在函數中傳回值
default 定義 switch 語句的預設語句塊 switch 定義一個多條件選擇語句塊
delete 清除指定對象佔用的記憶體資源 this 引用當前代碼所在的對象
else 定義 if 語句返回為假時的語句塊 typeof 返回對象的類型
for 定義一個迴圈 var 聲明一個本地變數(Local Variable)
function 定義一個函數語句塊 void 聲明傳回值類型不確定
if 定義一個條件陳述式塊 while 定義一個條件迴圈語句塊
in 在一個對象或元素數組中建立迴圈 with 定義一個對指定對象進行操作的語句塊
列出這些並不是要求你像背單詞一樣把它們背下來(這也是為什麼中國的教育品質這麼差的原因), 只是希望大家記住: 在 Flash 中有一些作為關鍵字的單詞是不能隨意使用的. 這在分析錯誤的時候是很有用的(特別對於初學者).
文法規範---大小寫敏感
同 C++ 和 Java 一樣, Actions cript 是區分大小寫.
這就意味著: If 並不等於 if. 假如在代碼中使用了 If, 在運行和檢查時都會產生錯誤. 避免這種情況發生其實很簡單: 多注意一下輸入的代碼是否自動地被文法著色了(Syntax Hightlighting).
但是對於變數(Variable), 執行個體名(Instance Name)和幀標籤(Frame Label), Actions cript 是不區分大小寫. 儘管如此, 我還是建議大家在書寫代碼時保持大小寫一致. 這是個很好的習慣.
文法規範---運算子
除了關鍵字, 程式語言中最重要的組成部分就是運算子. 先不要說我死板, 因為不瞭解這些東西, 你什麼也做不成.
下面是運算子的列表, 運算子的優先順序(即幾個運算子出現在同一運算式中時先運算哪一個)從上到下遞減:

運算子 描述

+ 一元(Unary)加
- 一元(Unary)減
~ 按位(Bitwise)邏輯非
! 邏輯非(NOT)
not 邏輯非 (Flash 4 格式)
++ 後期(Post)遞加
-- 後期(Post)遞減
( ) 函數調用
[ ] 數組(Array)元素
. 結構(Structure)成員
++ 先期(Pre)遞加
-- 先期(Pre)遞減
new 建立對象
delete 刪除對象
typeof 獲得物件類型
void 返回未定義值
* 乘

/ 除
% 求模(除法的餘數)
+ 加
add 字串(String)串連 (過去的&)
- 減
<< 按位左移
>> 按位右移
>>> 按位右移 (無符號 unsigned, 以 0 填充)
< 小於
<= 小於或等於
> 大於
>= 大於或等於
lt 小於 (字串使用)
le 小於或等於 (字串使用)
gt 大於 (字串使用)
ge 大於或等於 (字串使用)
== 等於
!= 不等於
eq 等於(字串使用)
ne 不等於 (字串使用)
& 按位(Bitwise)邏輯和(AND)
^ 按位邏輯異或(XOR)
| 按位邏輯或(OR)
&& 邏輯和(AND)
and 邏輯和 AND (Flash 4)
|| 邏輯或 OR
or 邏輯或 OR (Flash 4)
?: 條件
= 賦值
*= /= %=
+= -= &=
|= ^= <<=
>>= >>>=
複合賦值運算
, 多重運算

寫了這麼一大版(也可以說是抄了), 有什麼用? 你會發現這些運算子與 C++ 和 Java 的運算子沒什麼很大的區別, 無論是形式上還是功能上. 作為初學者你必須記住其中比較常用的部分(不常用部分的解說文字背景較暗). 這對你今後寫運算式有很大協助.


<!-- / icon and title --><!-- message -->
對於運算子的使用, 也有一些要注意的地方.
例如 and 和 or, 雖然對於效率而言與 && 和 || 沒什麼至關重要的區別, 但如果你過去使用過 BASIC, 你肯定會選擇前者的表示方式; 假如你過去是使用 C++ 或是 Java 的, 那麼你就會傾向於使用後一種方法. 就我個人的觀點, 為了使代碼具有高可讀性, 初學者還是應該使用意思明了的 and 和 or.
特別是像 ?: 這類極其簡化的運算子, 初學者更難以閱讀. 例如下面代碼:
x = 5;
y = 10;
z = (x < 6) ? x: y; //如果 x 小於 6, 就把 x 的值賦給 z, 否則將 y 的值賦給 z
trace (z); //返回 5
從上例開始, 本教程中的所有範例代碼都可以複製粘貼到建立的 Flash 動畫的第一幀的 Action 裡. 然後通過 Control 菜單的 Test Movie 項或是按下按鍵組合 CTRL+ENTER 運行它. 這樣你就可以看看這些代碼有什麼實際效果了. 當然你也可以試著改動這些代碼, 通過改動的效果來理解教程的內容.
就不如下面的代碼易於理解(儘管很冗繁):
x = 5;
y = 10;
if(x < 6){ //如果 x 小於 6, 就把 x 的值賦給 z, 否則將 y 的值賦給 z z = x;
} else {
z = y;
}
trace (z); //返回 5
文法規範---常量
常量是在程式運行中不會改變的量.
例如數值 1,2,3..., 邏輯值 true, false 等等. 另外還有一些系統內建的常量, 具體的可以看協助檔案的內容.
文法規範---運算式
在 Actions cript 中最常見的語句就是運算式, 它通常由變數名, 運算子及常量組成. 下面是一個簡單的運算式:
x = 0;左邊是變數名(x), 中間是運算子(賦值運算子 "="), 右邊是常量(數值 0). 這就是一個非常簡單的賦值運算式. 由這個運算式我們可以聲明(Declare)一個變數, 為下一步操作做準備.
運算式又分為賦值運算式, 算術運算式和邏輯運算式.
賦值運算式上面已經說明了, 就是給變數一個值. 算術運算式顧名思義就是做數學運算的運算式, 例如: 1+3 (傳回值為數值 4). 邏輯運算式就是做邏輯運算的運算式, 例如: 1>3. 只不過邏輯運算式返回的是邏輯值而已. 前面的 1>3 傳回值為 false, 即 1 大於 3 為假.
將多個運算式組合在一起就可以組成複合運算式, 一般我們用到的也是這種運算式. 例如:
t = 3*3+(2+3);
x = 1>3;上面的第二行是一個邏輯-賦值複合運算式. 首先 Flash 計算邏輯運算式 1>3 的值(false), 然後將該值賦給 x (即 x = false. 對於複合運算式的運算順序可以參考上面的運算子表. 要改變運算順序可以使用圓括弧(例子的第一行), 這是同其它語言一致的.
這一章就到此為止. 在下一章中, 我們將詳細討論 Flash 中的資料類型及變數的使用
                                   來源: 閃吧


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。