1.4.4代碼編寫
現(xiàn)在開始進入最麻煩的步驟——代碼編寫,我們將會接觸到很多新的東西。
1、文本文件數據加載
在最開始的時候,我們曾建立一個文本文件,將其命名為“subtrahend.txt”,存在.fla文件所在的目錄下,這個文件中包含有程序需要讀取的參數,現(xiàn)在我們就要編寫代碼將這些數據讀取出來。
選中“腳本”層中的第一幀,然后打開行為面板,輸入這樣的代碼:
var externalData:LoadVars = new LoadVars();
externalData.onLoad = function(){
subtrahend_txt.text = externalData.subtrahend;
}
externalData.load("subtrahend.txt");
var externalData:LoadVars = new LoadVars();這個語句的作用是建立一個LoadVars對象,將其命名為externalData。
而緊接下來的三行語句的作用是處理externalData對象的onLoad事件的代碼,也就是說,當externalData對象加載的時候(onLoad),將讀取externalData對象的subtrahend屬性并賦值給界面上的subtranhend_txt,從而就完成了將數據從文本文件中讀取出來并顯示在界面上的過程。
你也許會問,externalData對象的subtrahend屬性是從哪里“冒出來”的,回顧一下我們在實例開始時建立文本文件時在其中輸入的內容是&subtrahend=100,凡是以“&”的行,LoadVars對象都會將&后面的單詞識別為自己的一個屬性并將緊隨其后的等號右邊的參數作為這個屬性的值。
2、用戶輸入數據的處理
這個減法運算的,兩個運算數一個是從文本文件中讀取出來的,另外一個是根據用戶的輸入獲得的,前面設置文本對象屬性的時候我們已經將其中一個設置為“輸入文本”,用戶可以在其中輸入數值?,F(xiàn)在就是要處理當用戶完成數值輸入然后單擊“Submit”按鈕所要執(zhí)行的操作。
選擇“腳本”層中的那個提交按鈕,為其添加這樣的代碼:
on (press) {
var minuend:Number = Number(minuend_txt.text);
var subtrahend:Number = Number(subtrahend_txt.text);
finalResult=minuend-subtrahend
}
這段代碼處理用戶在該命名按鈕上單擊鼠標后需要執(zhí)行的操作,這里的兩個語句的作用是將,界面上的兩個文本對象顯示的內容轉換成數值并分別用兩個變量minuend和subtrahend保存,然后運算兩者的差并保存到變量finalResult中。
3、根據運算結果提供反饋
首先拖放一個影片剪輯Movie_Clip的實例到場景的“界面”層當中并將這個影片剪輯實例命名為Movie_Clip_Instance_mc,要想在代碼中引用影片剪輯的實例必須為其指定名稱。
下面根據finalResult的值來確定給用戶什么樣的反饋。在On(Press)事件處理中追加以下的代碼。
on (press) {
var minuend:Number = Number(minuend_txt.text);
var subtrahend:Number = Number(subtrahend_txt.text);
finalResult=minuend-subtrahend;
result_txt.text=finalResult;
if (finalResult>0)
Movie_Clip_Instance_mc.gotoAndPlay(3)
else
Movie_Clip_Instance_mc.gotoAndPlay(2);
}
追加的這幾行代碼使用了一個簡單的判斷結構,即if...else...,如果if括號中的條件滿足則執(zhí)行前一條語句,否則執(zhí)行后一條語句。這里我們調用了影片剪輯實例Movie_Clip_Instance_mc的gotoAndPlay方法,這個方法可以讓影片剪輯在自身內部調轉播放,由于我們在影片剪輯中的不同幀上安放了不同的反饋信息,因此通過這個語句就可以非??焖俚赝瓿蓪τ脩舻姆答仯@也是交互式Flash應用程序開發(fā)中常用的小技巧。
1.5總結
麻雀雖小,五臟俱全,這個程序看上實在有些簡陋,但是通過這個傻傻的例子我們還是能夠學到很多Flash MX 2004 ActionScript的知識,這里再作一個回顧,對照下面的列表檢查一下自己掌握了多少:
Flash程序輸入數據有兩種比較常用方法:一是通過用戶輸入,在這個例子中我們通過一個“輸入文本”來實現(xiàn),還有一種是通過文本文件,在這個例子中我們通過建立LoadVars對象并調用其Load方法,然后再起onLoad()事件處理中提取數據。
在On(Press)事件中,可以處理用戶單擊按鈕的操作
使用影片剪輯實例的gotoAndPlay()方法可以播放影片剪輯實例內部指定的幀
函數Number()可以用來提取界面上的文本對象中顯示的數字