2. 創(chuàng)建變量
創(chuàng)建一個變量在術(shù)語中稱為聲明。如果還使用銀行賬號的比喻,那么聲明等同于“開設(shè)一個賬號”,在這一步中我們正式地使變量事實存在。當一個變量被首次聲明時,它是空的 —— 好像一張白紙等著你在上面寫點什么,在這種狀態(tài)下,該變量包含一個特殊的值,稱為:undefined(未定義或無數(shù)據(jù))。 為聲明一個新變量,我們使用var語句。例如: var speed; var bookTitle; var x;
單詞var告訴解釋器我們正在聲明一個變量,而隨后的文本,如speed,bookTitle,或者x,都成為我們的新變量名。我們可以在任何能夠附著代碼的地方創(chuàng)建變量:一個關(guān)鍵幀、一個按鈕、或一個電影剪輯。
我們也能夠使用一個var語句來聲明多個變量,象這樣: var x, y, z;
不過,這樣做削弱了我們?yōu)橄噜彽拿總變量加注釋的能力。
一旦某個變量被創(chuàng)建,我們可以為其賦值。但是,在我們學習如何為變量賦值之前,讓我們考慮一些變量聲明中的敏感細節(jié)。
1.變量自動生成 許多編程語言都要求在將數(shù)據(jù)存入變量之前必須首先聲明變量;忽略聲明會導(dǎo)致錯誤發(fā)生。ActionScript并不是那么嚴格,如果我們向一個并不存在的變量(未聲明的變量)賦值,解釋器會為我們創(chuàng)建一個新變量。銀行,繼續(xù)那個比喻,會自動地開設(shè)一個賬號 —— 當你還沒有賬號但是試圖做第一次存款時。
當然,這種便利需要代價。如果我們不主動聲明變量,在檢查代碼的時候就不會有詳細的程序清單作為參考;此外,用var語句顯式地聲明變量和由解釋器隱式地聲明變量(即允許自動生成變量)對比,有時會產(chǎn)生不同的結(jié)果。先聲明然后使用(即顯式聲明)是最安全的方式,貫穿本書,我們將全部使用顯式聲明變量的方式。
2.合法變量名 在開始創(chuàng)建變量之前,首先要明了變量名: √ 變量名必須由且僅由字母、數(shù)字,和下劃線組成。任何空格、破折號、或其他的標點符號都是不被允許的。 √ 變量名必須由且僅由字母或下劃線開頭。 √ 變量名必須不能超過255個字符。好吧,好吧,這是一句謊話,不過,如果你的變量名真的超過了255個字符,請重新評估一下你的變量命名策略吧。 √ ActionScript的變量名是大小寫不敏感的。大寫字母和小寫字母被認為是完全一樣的,盡管如此,你仍應(yīng)該保持變量名使用的一致性。
這是一些合法的變量名: var first_name; var counter; var reallyLongVariableName; var i;
而這些是不合法的變量名,它們將導(dǎo)致錯誤的發(fā)生: var 1first_name; // starts with a number var variable name with space; // contains spaces var another-illegal-name; // contains hyphens
2.1創(chuàng)建動態(tài)命名變量 盡管動態(tài)地創(chuàng)建變量名是很罕見的情況,但是,程序化地產(chǎn)生變量名仍是可能發(fā)生的事情。從任何表達式中創(chuàng)建一個變量名都需要使用set語句。例如,我們把值“bruce”賦給變量player1name: var i = 1; set ("player" + i + "name", "bruce");
數(shù)組和對象為我們提供了跟蹤動態(tài)命名數(shù)據(jù)的更有效的手段,并且它們將用于替代動態(tài)的變量名,這些將在以后的章節(jié)中討論。
3.在程序開始處聲明變量 在每個電影的主腳本區(qū)的開始處聲明變量是很好的習慣。所謂的主腳本區(qū)通常是緊隨在電影預(yù)載部分之后的第一個關(guān)鍵幀。為了以后能容易地辨識變量,請確保為每個變量加注釋以解釋其用途。組織良好的腳本開端應(yīng)該看起來象這樣: // ^^^^^^^^^^^^^^^^^^^^^^ // initialize variables // ^^^^^^^^^^^^^^^^^^^^^^ var ballSpeed; // velocity of ball, max 10 var score; // player's current score var hiScore; // high score (not saved between sessions) var player1; // name of player 1, supplied by user
我們可以在創(chuàng)建變量的同時給它們賦初值,象這樣: var ballSpeed = 5; // velocity of ball, max 10, default 5 var score = 0; // player's current score var hiScore = 0; // high score (not saved between sessions)
出處:藍色理想
責任編輯:無意
上一頁 變量(1)- 概述 下一頁 變量(3)- 變量賦值
◎進入論壇Flash專欄版塊參加討論
|